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)
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}')"
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
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)
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"
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
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}"
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)
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}>"
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
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)
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)
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)
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}"
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
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
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}>"