示例#1
0
class User(db.Model, UserMixin):
    id = db.Column(db.String(200), primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(150))
    password = db.Column(db.String(256), nullable=False)
    token = db.Column(db.String(400))
    date_created = db.Column(db.DateTime,
                             nullable=False,
                             default=datetime.utcnow)
    token_refreshed = db.Column(db.Boolean, default=False)
    date_refreshed = db.Column(db.DateTime)

    def __init__(self, name, email, password, id=id):
        self.id = str(uuid.uuid4())
        # instead of an integer for user.id, makes a complex user.id
        self.name = name
        self.email = email
        self.password = self.set_password(password)

    def set_password(self, password):
        self.pw_hash = generate_password_hash(password)
        return self.pw_hash

    def __repr__(self):
        return f'{self.name} has been created successfully! Date: {self.date_created}'
示例#2
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    public_id = db.Column(db.String(50), unique=True)
    name = db.Column(db.String(50))
    password = db.Column(db.String(80))
    admin = db.Column(db.Boolean)

    def __repr__(self):
        return f"Todo('{self.public_id}' , '{self.name}', '{self.password}', {self.admin})"
示例#3
0
class users(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    image_file = db.Column(db.String(20), nullable=False, default='default.jpg')

    api_key = db.relationship('apikeys', backref='owner', lazy=True) #list? not obj

    def __repr__(self):
        return f"users('{self.username}', '{self.email}, '{self.image_file}')"
示例#4
0
class User(db.Model, UserMixin):
    id = db.Column(db.String(200), primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(100))
    password = db.Column(db.String(256), nullable=False)
    date_created = db.Column(db.DateTime,
                             nullable=False,
                             default=datetime.utcnow)
    token = db.Column(db.String(400), default="No Token Created")
    token_refreashed = db.Column(db.Boolean, default=False)
    date_refreashed = db.Column(db.DateTime)
示例#5
0
class Widget(db.Model):
    """Widget model for a generic resource in a REST API."""

    __tablename__ = "widget"

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(100), unique=True, nullable=False)
    info_url = db.Column(db.String(255))
    created_at = db.Column(db.DateTime, default=utc_now)
    deadline = db.Column(db.DateTime)

    owner_id = db.Column(db.Integer,
                         db.ForeignKey("site_user.id"),
                         nullable=False)
    owner = db.relationship("User", backref=db.backref("widgets"))

    def __repr__(self):
        return f"<Widget name={self.name}, info_url={self.info_url}>"

    @hybrid_property
    def created_at_str(self):
        created_at_utc = make_tzaware(self.created_at,
                                      use_tz=timezone.utc,
                                      localize=False)
        return localized_dt_string(created_at_utc,
                                   use_tz=get_local_utcoffset())

    @hybrid_property
    def deadline_str(self):
        deadline_utc = make_tzaware(self.deadline,
                                    use_tz=timezone.utc,
                                    localize=False)
        return localized_dt_string(deadline_utc, use_tz=get_local_utcoffset())

    @hybrid_property
    def deadline_passed(self):
        return datetime.now(
            timezone.utc) > self.deadline.replace(tzinfo=timezone.utc)

    @hybrid_property
    def time_remaining(self):
        time_remaining = self.deadline.replace(tzinfo=timezone.utc) - utc_now()
        return time_remaining if not self.deadline_passed else timedelta(0)

    @hybrid_property
    def time_remaining_str(self):
        timedelta_str = format_timedelta_str(self.time_remaining)
        return timedelta_str if not self.deadline_passed else "No time remaining"

    @classmethod
    def find_by_name(cls, name):
        return cls.query.filter_by(name=name).first()
示例#6
0
class Todo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String(100))
    status = db.Column(db.Boolean)

    def __repr__(self):
        return f"User('{self.username}')"
示例#7
0
class apikeys(db.Model):
    key = db.Column(db.String(36), primary_key=True, nullable=False, default='')
    expiration = db.Column(db.Integer, nullable=False, default=-1)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False, default='-1')
    active = db.Column(db.Boolean, default=False)

    def __repr__(self):
        return f"apikeys('{self.key}', '{self.expiration}, '{self.user_id}', '{self.active}')"
示例#8
0
class Todo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(50))
    complete = db.Column(db.Boolean)
    user_id = db.Column(db.Integer)

    def __repr__(self):
        return f"Todo('{self.id}' , '{self.text}', '{self.complete}', {self.user_id})"
class User(db.Model, UserMixin):
    id = db.Column(db.String(200), primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(150))
    password = db.Column(db.String(256), nullable=False)

    def __init__(self, name, email, password, id=id):
        self.id = str(uuid.uuid4())
        self.name = name
        self.email = email
        self.password = self.set_password(password)

    def set_password(self, password):
        self.pw_hash = generate_password_hash(password)
        return self.pw_hash

    def __repr__(self):
        return f'{self.name} has been created successfully! Date: {self.date_created}'
示例#10
0
class BlacklistedToken(db.Model):
    """BlacklistedToken Model for storing JWT tokens."""

    __tablename__ = "token_blacklist"

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    token = db.Column(db.String(500), unique=True, nullable=False)
    blacklisted_on = db.Column(db.DateTime, default=utc_now)
    expires_at = db.Column(db.DateTime, nullable=False)

    def __init__(self, token, expires_at):
        self.token = token
        self.expires_at = dtaware_fromtimestamp(expires_at,
                                                use_tz=timezone.utc)

    def __repr__(self):
        return f"<BlacklistToken token={self.token}>"

    @classmethod
    def check_blacklist(cls, token):
        exists = cls.query.filter_by(token=token).first()
        return True if exists else False
示例#11
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(60), unique=True, nullable=False)
    username = db.Column(db.String(20), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)