예제 #1
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    todo = db.relationship('Todo', backref='current_user')

    def __repr__(self):
        return f'User_name: {self.username} Email: {self.email}'
예제 #2
0
class User(db.Model):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), nullable=False)
    email = db.Column(db.String(120), nullable=False)
    password = db.Column(db.String(60), nullable=False)
    profile_image_key = db.Column(db.String(120), nullable=True)
    profile_back_image_key = db.Column(db.String(120), nullable=True)
예제 #3
0
class Todo(db.Model):

    __tablename__ = 'todos'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(255), nullable=False)
    content = db.Column(db.String(255), nullable=False)
    post_image_key = db.Column(db.String(255), nullable=False)
    date_posted = db.Column(db.DateTime,
                            nullable=False,
                            default=datetime.utcnow())
    user_id = db.Column(db.Integer, nullable=False)
예제 #4
0
class Todo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(200))
    complete = db.Column(db.Boolean)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f'todo_id :{self.id} user_id :{self.user_id}'
예제 #5
0
파일: task.py 프로젝트: GreatBahram/flask
class TaskModel(db.Model):
    __tablename__ = 'tasks'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30), nullable=False)
    note = db.Column(db.String(80))
    creation_date = db.Column(db.DateTime,
                              nullable=False,
                              default=datetime.now)
    due_date = db.Column(db.DateTime)
    completed = db.Column(db.Boolean, default=False)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)

    def to_dict(self):
        return {
            'id': self.id,
            'name': self.name,
            'note': self.note,
            'creation_date': self.creation_date.strftime(DATE_FMT),
            'due_date':
            self.due_date.strftime(DATE_FMT) if self.due_date else None,
            'completed': self.completed,
        }

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    @classmethod
    def find_by_id(cls, task_id):
        return cls.query.filter_by(id=task_id).first()

    def __repr__(self):
        return f"<Task: {self.name}>"
예제 #6
0
파일: user.py 프로젝트: GreatBahram/flask
class UserModel(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(60), nullable=False, unique=True)
    email = db.Column(db.String(60), nullable=False)
    password_hash = db.Column(db.String(60), nullable=False)
    date_joined = db.Column(db.DateTime, nullable=False)
    tasks = db.relationship("TaskModel", backref='user',  cascade="all", lazy='dynamic')

    def __init__(self, username, email, password):
        self.username = username
        self.email = email
        self.password = password
        self.date_joined = datetime.now()

    @property
    def password(self):
        """
        Prevent password from being accessed.
        """
        raise AttributeError('Password is not a readable attribute.')
    
    @password.setter
    def password(self, password):
        self.password_hash = bcrypt.generate_password_hash(password).decode('utf-8')

    def verify_password(self, password):
        return bcrypt.check_password_hash(self.password_hash, password)

    def to_dict(self):
        """Get the object's properties as a dictionary."""

        return {
            "username": self.username,
            "email": self.email,
            "date_joined": self.date_joined.strftime(DATE_FMT),
            "tasks": [task.to_dict() for task in self.tasks.all()],
        }

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    @classmethod
    def find_by_username(cls, username):
        return cls.query.filter_by(username=username).first()

    @classmethod
    def find_by_id(cls, user_id):
        return cls.query.filter_by(id=user_id).first()

    @classmethod
    def return_all(cls):
        def to_dict(user):
            return {
                    'username': user.username,
                    'email': user.email,
                    }
        return {'users': list(map(lambda x: to_dict(x), cls.query.all()))}

    def __repr__(self):
        return f"<User: {self.username}>"