Example #1
0
class Bookmark(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    url = db.Column(db.Text, nullable=False)
    date = db.Column(db.DateTime, default=datetime.utcnow)
    description = db.Column(db.String(300))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    _tags = db.relationship('Tag',
                            secondary=tags,
                            lazy='joined',
                            backref=db.backref('bookmarks', lazy='dynamic'))

    @staticmethod
    def newest(num):
        return Bookmark.query.order_by(desc(Bookmark.date)).limit(num)

    @property
    def tags(self):
        return ",".join([t.name for t in self._tags])

    @tags.setter
    def tags(self, string):
        if string:
            self._tags = [
                Tag.get_or_create(name) for name in string.split(',')
            ]

    def __repr__(self):
        return "<Bookmark '{}': '{}'>".format(self.description, self.url)
Example #2
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    date_posted = db.Column(db.DateTime,
                            nullable=False,
                            default=datetime.utcnow)
    content = db.Column(db.Text, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Post('{self.title}', '{self.date_posted}')"
Example #3
0
class Owner(db.Model):

    __tablename__ = "owners"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
    puppy_id = db.Column(db.Integer, db.ForeignKey("puppies.id"))

    def __init__(self, name, puppy_id):
        self.name = name
        self.puppy_id = puppy_id
Example #4
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)
    image_file = db.Column(db.String(20),
                           nullable=False,
                           default='default.jpg')
    password = db.Column(db.String(60), nullable=False)
    posts = db.relationship('Post', backref='author', lazy=True)

    def __repr__(self):
        return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class User(db.Model, UserMixin):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True, index=True)
    username = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))

    def __init__(self, email, username, password):
        self.email = email
        self.username = username
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)
Example #6
0
class Puppy(db.Model):

    __tablename__ = "puppies"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text)
    owner = db.relationship("Owner", backref="Puppy", uselist=False)

    def __init__(self, name):
        self.name = name

    def __repr__(self):
        if self.owner:
            return f"{self.name} is a puppy whose owner is {self.owner.name}"
        return f"{self.name} is a puppy which has no owner"
Example #7
0
class Tag(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(25), nullable=False, unique=True, index=True)

    @staticmethod
    def get_or_create(name):
        try:
            return Tag.query.filter_by(name=name).one()
        except:
            return Tag(name=name)

    @staticmethod
    def all():
        return Tag.query.all()

    def __repr__(self):
        return self.name
Example #8
0
class Post(db.Model):
    # Name the table in database
    __tablename__ = 'posts'

    # Name of Column:
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.Text)
    content = db.Column(db.Text)

    # Connect the post to the member that owns it.
    # We use members.id because __tablename__='members'
    member_id = db.Column(db.Integer, db.ForeignKey('members.id'))

    def __init__(self, title, content, member_id):
        self.title = title
        self.content = content
        self.member_id = member_id
class BlogPost(db.Model):

    users = db.relationship(User)

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    title = db.Column(db.String(140), nullable=False)
    text = db.Column(db.Text, nullable=False)

    def __init__(self, title, text, user_id):
        self.title = title
        self.text = text
        self.user_id = user_id

    def __repr__(self):
        return f"Post ID: {self.id}"
Example #10
0
class Blog(db.Model):

    __tablename__ = 'blogs'
    id = db.Column(db.Integer, primary_key=True)
    blog_id = db.Column(db.Text)
    dish_name = db.Column(db.String(60), nullable=False)
    dish_receipe = db.Column(db.Text)
    date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    recipe_img = db.Column(db.String(80), nullable=True)

    email = db.Column(db.String(80),
                      db.ForeignKey('users.email'),
                      nullable=False)
    user = db.relationship('User',
                           backref=db.backref('blogs',
                                              lazy=True,
                                              cascade="all,delete"))

    def __init__(self, email, dish_name, dish_receipe, count):

        self.blog_id = str(email) + '-' + str(dish_name) + '-' + str(count)
        self.email = email
        self.dish_name = dish_name
        self.dish_receipe = dish_receipe

    def __repr__(self):
        return "Id: {} User: {} \n Receipe Name: {} \n Receipe: {} ".format(
            self.blog_id, self.email, self.dish_name, self.dish_receipe)
Example #11
0
class Project(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    index = db.Column(db.Integer,autoincrement= True, nullable=False)
    title = db.Column(db.String(30), nullable=False, unique=True,info={"validators": Regexp("^[A-Za-z0-9_-]*$")})
    imgfile = db.Column(db.String(30),nullable=False)
    website = db.Column(db.String(30),nullable=True)
    github_url = db.Column(db.String, nullable=False)
    description = db.Column(db.Text, nullable=False)
    long_desc = db.Column(db.Text, nullable=False)

    def __repr__(self):
        return f"<Project.title : {self.title}>"
Example #12
0
class Member(db.Model):

    # Name the table in database
    __tablename__ = 'members'

    # Name of Column:
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.Text)
    email = db.Column(db.Text)
    age = db.Column(db.Integer)
    password = db.Column(db.Text)

    # This is a one-to-many relationship
    # A member can have many posts
    posts = db.relationship('Post', backref='Member', lazy='dynamic')

    def __init__(self, username, email, age, password):
        self.username = username
        self.email = email
        self.age = age
        self.password = password
Example #13
0
class User(db.Model, UserMixin):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(80), nullable=False, unique=True)
    password_hash = db.Column(db.Text, nullable=False)

    def __init__(self, email, password):

        self.email = email
        self.password_hash = bcrypt.generate_password_hash(password=password)

    def __repr__(self):
        return "Username: {} {}".format(self.id, self.email)

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

    def set_password(self, password):
        self.password_hash = bcrypt.generate_password_hash(password=password)
Example #14
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)
    bookmarks = db.relationship('Bookmark', backref='user', lazy='dynamic')
    password_hash = db.Column(db.String)

    @property
    def password(self):
        raise AttributeError('password: write-only field')

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    @staticmethod
    def get_by_username(username):
        return User.query.filter_by(username=username).first()

    def __repr__(self):
        return "<User '{}'>".format(self.username)
Example #15
0
class UserInfo(db.Model):

    __tablename__ = 'usersinfo'

    user_id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(80), nullable=False)
    last_name = db.Column(db.String(80), nullable=False)
    email = db.Column(db.Integer, db.ForeignKey('users.email'), nullable=False)
    profile_image = db.Column(db.String(80),
                              nullable=False,
                              default='default.png')

    user = db.relationship('User',
                           backref=db.backref('usersinfo',
                                              lazy=True,
                                              cascade="all,delete"))

    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

    def __repr__(self):
        return "Name: {} {} Email: {}".format(self.first_name, self.last_name,
                                              self.user)
Example #16
0
class User(db.Model, UserMixin):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    profile_image = db.Column(db.String(64),
                              nullable=False,
                              default='default_profile.png')
    email = db.Column(db.String(64), unique=True, index=True)
    username = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))

    posts = db.relationship('BlogPost', backref='author', lazy=True)

    def __init__(self, email, username, password):
        self.email = email
        self.username = username
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    def __repr__(self):
        return f"Username {self.username}"
Example #17
0
class User(db.Model, UserMixin):
    __tablename__ = "Users"
    _id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80),
                         unique=True,
                         nullable=False,
                         index=True)
    email = db.Column(db.String(120), nullable=False, index=True)
    password = db.Column(db.String(120), nullable=False)
    role = db.Column(db.String(120), nullable=False)
    confirm = db.Column(db.Boolean(), nullable=False, default=False)

    def __init__(self, username, email, password):
        self.username = username
        self.email = email
        self.password = password
        self.confirm = False

        if User.query.all() == []:
            self.role = 'admin'
        else:
            self.role = 'user'

    def get_id(self):
        return self._id

    def __repr__(self):
        return '<User %r>' % self.username

    def checkUsername(username):

        if User.query.filter_by(username=username).first():
            return False
        if len(username) > 6:
            if username[
                    0:
                    7] == "github_":  #github_ is set as prefix for github login
                return False
        return True

    def checkEmail(email):
        user = User.query.filter_by(email=email).first()
        if user:
            if user.confirm:
                return False
            else:
                try:
                    db.session.delete(user)
                    db.session.commit()
                except:
                    return False
        return True
Example #18
0
from datetime import datetime
from sqlalchemy import desc
from flask_login import UserMixin
from werkzeug.security import check_password_hash, generate_password_hash
from my_project import db

tags = db.Table(
    'bookmark_tag', db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
    db.Column('bookmark_id', db.Integer, db.ForeignKey('bookmark.id')))


class Bookmark(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    url = db.Column(db.Text, nullable=False)
    date = db.Column(db.DateTime, default=datetime.utcnow)
    description = db.Column(db.String(300))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    _tags = db.relationship('Tag',
                            secondary=tags,
                            lazy='joined',
                            backref=db.backref('bookmarks', lazy='dynamic'))

    @staticmethod
    def newest(num):
        return Bookmark.query.order_by(desc(Bookmark.date)).limit(num)

    @property
    def tags(self):
        return ",".join([t.name for t in self._tags])

    @tags.setter
Example #19
0
class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username=db.Column(db.String(30),nullable=False,unique=True)
    password_hash=db.Column(db.String(100),nullable=False)
    def __repr__(self):
        return f"<User username: {self.username}>"