from App import db from datetime import datetime from werkzeug.security import generate_password_hash, check_password_hash from flask_login import UserMixin from App import login from hashlib import md5 followers = db.Table( 'followers', db.Column('follower_id', db.Integer, db.ForeignKey('user.id')), db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))) @login.user_loader def load_user(id): return User.query.get(int(id)) class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) email = db.Column(db.String(120), index=True, unique=True) password_hash = db.Column(db.String(128)) posts = db.relationship('Post', backref='author', lazy='dynamic') about_me = db.Column(db.String(140)) last_seen = db.Column(db.DateTime, default=datetime.utcnow) followed = db.relationship('User', secondary=followers, primaryjoin=(followers.c.follower_id == id), secondaryjoin=(followers.c.followed_id == id), backref=db.backref('followers', lazy='dynamic'),
website_title = db.Column(db.String(191)) website_email = db.Column(db.String(191)) address = db.Column(db.Text) logo = db.Column(db.String(191)) favicon = db.Column(db.String(191)) # =========================================================================================== # Auth Models # =========================================================================================== # Here exists Many-to-Many relationship between User and Role # Here exists Many-to-Many relationship between Role and Permission # Here exists Many-to-Many relationship between User and Permission roles_users = db.Table( 'roles_users', db.Column('user_id', db.Integer(), db.ForeignKey('user.id')), db.Column('role_id', db.Integer(), db.ForeignKey('role.id'))) permissions_roles = db.Table( 'permissions_roles', db.Column('role_id', db.Integer(), db.ForeignKey('role.id')), db.Column('permission_id', db.Integer(), db.ForeignKey('permission.id'))) permissions_users = db.Table( 'permissions_users', db.Column('user_id', db.Integer(), db.ForeignKey('user.id')), db.Column('permission_id', db.Integer(), db.ForeignKey('permission.id'))) class Permission(db.Model): id = db.Column(db.Integer(), primary_key=True)
from App import db, login_manager from datetime import datetime from flask_login import UserMixin @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) likes = db.Table('likes', db.Column('id', db.Integer, db.ForeignKey('user.id')), db.Column('movie_id', db.Integer, db.ForeignKey('movie.id')), db.Column('rating_given', db.Integer, default=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(20), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.png') password = db.Column(db.String(60), nullable=False) def __repr__(self): return f"Name:{self.username},Email:{self.email},id:{self.id}" class Movie(db.Model): id = db.Column(db.Integer, primary_key=True)
__author__ = 'responsible' from App import db from flask.ext.security import UserMixin, RoleMixin from passlib.handlers.django import django_pbkdf2_sha256 roles_users = db.Table('roles_users', # 用户权限中间表 db.Column('user_id', db.Integer(), db.ForeignKey('user.id')), db.Column('role_id', db.Integer(), db.ForeignKey('role.id'))) class Role(db.Model, RoleMixin): # 权限表 id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(80), unique=True) description = db.Column(db.String(255)) def __init__(self, name, description): self.name = name self.description = description class User(db.Model, UserMixin): # 用户表 id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(11), nullable=False, unique=True) password = db.Column(db.String(128), nullable=False) active = db.Column(db.Boolean(), default=True, nullable=False) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic')) def __init__(self, username=None, password=None, active=True): self.username = username self.password = django_pbkdf2_sha256.encrypt(password) self.active = True
__author__ = 'Alex Galani' from App import db from flask_security import UserMixin, RoleMixin from passlib.hash import bcrypt roles_users = db.Table( 'roles_users', db.Column('user_id', db.Integer(), db.ForeignKey('user.id')), db.Column('role_id', db.Integer(), db.ForeignKey('role.id'))) services_users = db.Table( 'services_users', db.Column('user_id', db.Integer(), db.ForeignKey('user.id')), db.Column('service_id', db.Integer(), db.ForeignKey('services.id'))) class Role(db.Model, RoleMixin): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(80), unique=True) description = db.Column(db.String(255)) active = db.Column(db.Boolean(), default=True, nullable=False) def __init__(self, name, description): self.name = name self.description = description self.active = True class User(db.Model, UserMixin): __tablename__ = "user"