class User(db.Model, UserMixin): ''' This class defines structure of the User object. Each user of the website is put into the database as an instance of this User class''' 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) #grabs posts from the posts table by a specific author def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): '''this method defines how the object is printed''' return f"User('{self.username}','{self.email}','{self.image_file}')"
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) #Basically, this does an additional query lets us see all posts made by this specific user posts = db.relationship('Post', backref='author', lazy=True) def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): #how our object is printed when we print it out return f"User('{self.username}','{self.email}','{self.image_file}')"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) blog_id = db.Column(db.Integer, db.ForeignKey('blog.id')) author_id = db.Column(db.Integer, db.ForeignKey('author.id')) title = db.Column(db.String(80)) body = db.Column(db.Text) image = db.Column(db.String(255)) slug = db.Column(db.String(256), unique=True) publish_date = db.Column(db.DateTime) live = db.Column(db.Boolean) category_id = db.Column(db.Integer, db.ForeignKey('category.id')) category = db.relationship('Category', backref=db.backref('posts', lazy='dynamic')) @property def imgsrc(self): return uploaded_images.url(self.image) def __init__(self, blog, author, title, body, category, image=None, slug=None, publish_date=None, live=True): self.blog_id = blog.id self.author_id = author.id self.title = title self.body = body self.category = category self.image = image self.slug = slug if publish_date is None: self.publish_date = datetime.utcnow() self.live = live def __repr__(self): return '<Post %r>' % self.title
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) # This function generates a time-specific token # It takes the user_id of u.init_app(app)ser as payload and gernerate a long random string. def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) # try-except block to test weather the token is valid or not # if the token is invalid or time limit has expired then we return none try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(100), unique=True) name = db.Column(db.String(1000)) password = db.Column(db.String(100)) # モデルからインスタンスを生成するときに使います。(利便性を高めるため) # passwordの暗号化も自動で行うことができるので、安全性も高めることができます。 @classmethod def from_args(cls, name: str, email: str, password: str): instance = cls() instance.name = name instance.email = email if password is not None: # passwordがあれば暗号化します。 instance.hash_password(password) return instance # 暗号化するためのメソッド。 def hash_password(self, clean_password): self.password = generate_password_hash(str(clean_password), method='sha256') # 登録したpasswordとユーザーがログインフォームで入力したパスワードが正しいかどうかのチェックを行うメソッド def check_password(self, clean_password): return check_password_hash(self.password, clean_password)
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.png') password = db.Column(db.String(60), nullable=False) # 1-many relationship i.e. one user can have many post but one post can have only one author with Post class posts = db.relationship('Post', backref='author', lazy=True) # password reset method with token def get_reset_token(self, expires_seconds=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_seconds) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
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') # Don't forget later to have the hash with salt or lookup on the internet newer technique to hash passwords password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) def get_reset_token(self, expire_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expire_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod # tells python no need to expect the self argument def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), nullable=False, unique=True) email = db.Column(db.String(40), nullable=False, unique=True) profile_picture = db.Column(db.String(20), nullable=False, default="joker.jpg") password = db.Column(db.String(40), nullable=False) posts = db.relationship('Posts', backref='author', lazy=True) # backref - to mention col name in related Class(table) lazy to be able to fetch all # posts using the author def get_reset_token(self, expires_sec=300): serial = Serializer(current_app.config['SECRET_KEY'], expires_sec) return serial.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): serial = Serializer(current_app.config['SECRET_KEY']) try: user_id = serial.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.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 generate_token(self, expiration=600): s = Serializer(app.config['SECRET_KEY'], expires_in=expiration) return s.dumps({'id': self.id}) @staticmethod def verify_auth_token(token): s = Serializer(app.config['SECRET_KEY']) try: data = s.loads(token) user = User.query.filter_by(id=data['id']).first() return user except: return None def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
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) # lazy means it will return the data in one go #this posts col allows us to view the user who created the post def __repr__(self): return f"User('{self.username}','{self.email}','{self.image_file}')" def get_reset_token(self, expires_time=1800): s = Serializer(app.config['SECRET_KEY'], expires_time) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_token(token): s = Serializer(app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_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) # it refers to other class posts as one user can have many posts # backref is used to get the user who created the post #lazy attribute is used to get all the posts created by a user # here we are referencing the Post class that's why we have Posts def get_reset_token(self, expires_sec=1800): # its 1800 sec i.e 30 min s = Serializer(app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') # we are not using self keyword so we define staticmethod keyword # to tell python do not expect self as argument we are only going to # use token @staticmethod def verify_reset_token(token): s = Serializer(app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
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}')" def get_reset_token(self, expires_sec=1800): s = Serializer(app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verif_reset_token(token): s = Serializer(app.config['SECRET_KEY']) try: user_id = s.load(token)['user_id'] except: return None return User.query.get(user_id)
class User(db.Model, UserMixin): # create the columns of the User db id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(16), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image = db.Column(db.String(20), nullable=False, default='default.png') password = db.Column(db.String(60), nullable=False) # backref allows us to put the user as the 'author' in posts table posts = db.relationship('Post', backref='author', lazy=True) # create a reset token to reset the user account password def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') # verify that the received token corresponds to a user in the db and return it @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image}')"
class Comments(db.Model): __tablename__ = "moviecomments" comm_id = db.Column(db.Integer, primary_key=True) movie_id = db.Column(db.Integer, db.ForeignKey("movie.movie_id"), nullable=False) mcomment = db.Column(db.String, nullable=False) mrating = db.Column(db.Integer, nullable=False)
class Entry(db.Model): __tablename__ = 'entries' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(50), unique=True) text = db.Column(db.Text) # なぜかコンストラクタでcreated_atに日時を格納できないので応急処置で以下デフォルトを設けている # ビューの呼び出し側、またはINSERT処理に問題ある可能性もあり created_at = db.Column(db.DateTime, default=datetime.utcnow())
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)
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(30), nullable=False) date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow()) content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) # in the foreign key user is lower case as that is the table name that is by default named from he class User... def __repr__(self): return f'User({self.title}, {self.date}, {self.content})'
class User(db.Model): 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) posts = db.relationship('Post', backref='author', lazy=True) def __repr__(self): return f"User('{self.username}', '{self.email}')"
class Shipper(db.Model): shipper_id = db.Column(db.Integer, primary_key=True) company_name = db.Column(db.String(40), nullable=False) phone = db.Column(db.String(40), nullable=False) orders = db.relationship('Orders', backref='shipped', lazy=True) def __repr__(self): return f"Shipper('shipper_id (PK): {self.shipper_id}, company_name: {self.company_name}, phone: {self.phone}')"
class Category(db.Model): category_id = db.Column(db.Integer, primary_key=True) category_name = db.Column(db.String(40), nullable=False) category_description = db.Column(db.String(100), nullable=False) products = db.relationship('Products', backref='contains', lazy=True) def __repr__(self): return f"Category('category_id(PK): {self.category_id}, category_name: {self.category_name}, category_description: {self.category_description}')"
class Videos(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) date = db.Column(db.DateTime, nullable=False, default=datetime.now()) player = db.Column(db.String(40), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Videos('{self.title}','{self.date}')"
class Profile(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=False) country = db.Column(db.String(30), unique=False) email = db.Column(db.String(30), unique=False) hobbies = db.Column(db.String(500), unique=False) def __repr__(self): return f"This is the profile of {self.name}"
class User(db.Model): 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)
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) # function as argument, don't run it content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) # "u" lower case for table name def __repr__(self): return f"Post('{self.title}','{self.date_posted}')"
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 Shipping(db.Model): id = db.Column(db.Integer, primary_key=True) method = db.Column(db.String(40), nullable=False) weight = db.Column(db.String(40), nullable=False) price_per_pound = db.Column(db.Float, nullable=False) flat_charges = db.Column(db.Float, nullable=False) def __repr__(self): return f"Shipping('id: {self.id}, method: {self.method}, weight: {self.weight}, price_per_pound: {self.price_per_pound}, flat_charges: {self.flat_charges}')"
class Category(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) def __init__(self, name): self.name = name def __repr__(self): return self.name
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String, unique=True, nullable=False) email = db.Column(db.String, unique=True, nullable=False) image_file = db.Column(db.String, nullable=False, default="default.jpg") password = db.Column(db.String, 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): 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=db.backref('author', lazy=True)) # "P" Upper case for Class def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
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 = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) videos = db.relationship('Videos', backref='uploader', lazy=True) def __repr__(self): return f"User('{self.username}','{self.email}','{self.image}')"