from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property from ext import db from config import avatar_tmpl from .mixin import BaseMixin friendship = db.Table( 'friends', db.Column('user_id', db.String(20), db.ForeignKey('users.id')), db.Column('friend_id', db.String(20), db.ForeignKey('users.id'))) group_relationship = db.Table( 'group_relationship', db.Column('group_id', db.String(20), db.ForeignKey('groups.id'), nullable=False), db.Column('user_id', db.String(20), db.ForeignKey('users.id'), nullable=False)) mp_relationship = db.Table( 'mp_relationship', db.Column('mp_id', db.String(20), db.ForeignKey('mps.id'), nullable=False), db.Column('user_id', db.String(20), db.ForeignKey('users.id'), nullable=False)) class CoreMixin(BaseMixin):
user = self.query(MP if self.type == _MP else User).get(self.sender_id) return user.to_dict() if user else {} @cached_hybrid_property def msg_type(self): return ID_TO_TYPE_MAP.get(self.type, 'Text') def to_dict(self): dct = super().to_dict() for p in ('sender', 'group', 'msg_type'): dct[p] = getattr(self, p) return dct class Tag(db.Model, BaseMixin): __tablename__ = 'tag' __table_args__ = {'mysql_charset': 'utf8mb4'} id = db.Column(db.Integer, primary_key=True) tag_name = db.Column(db.String(1024)) created_time = db.Column(db.DateTime) ref_count = db.Column(db.Integer) parent = db.Column(db.Integer, default='') level = db.Column(db.Integer, default=0) tag_message = db.Table('tag_meesage', db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')), db.Column('message_id', db.Integer, db.ForeignKey('message.id')), mysql_charset='utf8mb4')
return column def serialize(model): """Transforms a model into a dictionary which can be dumped to JSON.""" # first we get the names of all the columns on your model columns = [c.key for c in class_mapper(model.__class__).columns] # then we return their values in a dict return dict((c, getattr(model, c)) for c in columns) roles = db.Table( 'roles_users', db.Column('user_id', db.Integer, db.ForeignKey('users.id'), primary_key=True), db.Column('role_id', db.Integer, db.ForeignKey('roles.id'), primary_key=True)) class VarQueries(db.Model): __tablename__ = 'variables_queries' id = db.Column(db.Integer, primary_key=True, autoincrement=True) query_id = db.Column(db.Integer, db.ForeignKey('query_group.id')) variable_id = db.Column(db.Integer, db.ForeignKey('yjvariableinfo.id')) query = db.relationship('QueryGroup', back_populates='variables') variable = db.relationship('YjVariableInfo', back_populates='queries')
from flask import abort, url_for, current_app from flask_restful import Resource, reqparse, fields, marshal from passlib.apps import custom_app_context as pwd_context from ext import db, desc, login from flask_login import UserMixin from werkzeug.security import generate_password_hash, check_password_hash from hashlib import md5 from time import time from datetime import datetime, timedelta, timezone import jwt followers = db.Table( 'followers', db.Column('follower_id', db.Integer, db.ForeignKey('user.id')), db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))) class User(UserMixin, db.Model): #用户 ORM注册 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)) is_adminenticated = db.Column(db.Boolean, default=False) institute = db.Column(db.String(128), nullable=False) real_name = db.Column(db.String(128)) about_me = db.Column(db.String(140)) last_seen = db.Column(db.DateTime, default=datetime.utcnow) photo = db.Column(db.String(120))
import os import requests from flask_security import UserMixin, RoleMixin, SQLAlchemyUserDatastore from sqlalchemy import func as alchemyFn from config import UPLOAD_FOLDER from corelib.utils import generate_id from ext import db from models.contact import Contact from models.mixin import BaseMixin roles_users = db.Table( 'roles_users', db.Column('user_id', db.Integer(), db.ForeignKey('users.id')), db.Column('role_id', db.Integer(), db.ForeignKey('role.id')), ) class Role(db.Model, RoleMixin): name = db.Column(db.String(80), unique=True) description = db.Column(db.String(191)) class User(db.Model, UserMixin, BaseMixin): __tablename__ = 'users' bio = db.Column(db.String(128), default='') name = db.Column(db.String(128), default='') nickname = db.Column(db.String(128), default='') email = db.Column(db.String(191), default='') password = db.Column(db.String(191))
import requests from flask_security import UserMixin, RoleMixin, SQLAlchemyUserDatastore from sqlalchemy import func as alchemyFn from sqlalchemy.ext.mutable import MutableDict from sqlalchemy_utils import JSONType from ext import db from config import UPLOAD_FOLDER from models.mixin import BaseMixin from models.contact import Contact, userFollowStats from corelib.utils import generate_id roles_users = db.Table( "roles_users", db.Column("user_id", db.Integer(), db.ForeignKey("users.id")), db.Column("role_id", db.Integer(), db.ForeignKey("role.id")), ) class User(db.Model, UserMixin, BaseMixin): __tablename__ = "users" bio = db.Column(db.String(128), default="") name = db.Column(db.String(128), default="") nickname = db.Column(db.String(128), default="") email = db.Column(db.String(191), default="") password = db.Column(db.String(191)) website = db.Column(db.String(191), default="") github_id = db.Column(db.String(191), default="") last_login_at = db.Column(db.DateTime()) current_login_at = db.Column(db.DateTime()) last_login_ip = db.Column(db.String(100))
from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property from werkzeug.security import generate_password_hash, check_password_hash from loguru import logger from ext import db from config import avatar_tmpl from .mixin import BaseMixin friendship = db.Table('friends', db.Column('user_id', db.String(20), db.ForeignKey('users.id')), db.Column('friend_id', db.String(20), db.ForeignKey('users.id')), mysql_charset='utf8mb4') group_relationship = db.Table('group_relationship', db.Column('group_id', db.String(20), db.ForeignKey('groups.id'), nullable=False), db.Column('user_id', db.String(20), db.ForeignKey('users.id'), nullable=False), mysql_charset='utf8mb4') mp_relationship = db.Table('mp_relationship', db.Column('mp_id', db.String(20), db.ForeignKey('mps.id'), nullable=False), db.Column('user_id',
from ext import db class Group(db.Model): __tablename__ = 'group' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(30), nullable=False, unique=True) summary = db.Column(db.String(255), nullable=True) Group_Power = db.Table( 'group_power', db.Model.metadata, db.Column('g_id', db.Integer, db.ForeignKey('group.id', ondelete='RESTRICT'), primary_key=True), db.Column('p_id', db.Integer, db.ForeignKey('power.id', ondelete='RESTRICT'), primary_key=True)) class Power(db.Model): __tablename__ = 'power' id = db.Column(db.Integer, primary_key=True, autoincrement=True) index_r = db.Column(db.Boolean, nullable=False, default=True) index_w = db.Column(db.Boolean, nullable=False, default=False) person_r = db.Column(db.Boolean, nullable=False, default=True) person_w = db.Column(db.Boolean, nullable=False, default=False) article_r = db.Column(db.Boolean, nullable=False, default=True) article_w = db.Column(db.Boolean, nullable=False, default=False)
#用户 #文章 #标签 class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(50)) email = db.Column(db.String(50)) article_tag_table = db.Table( 'article_tag', db.Column('article_id', db.Integer, db.ForeignKey("article.id"), primary_key=True), db.Column('tag_id', db.Integer, db.ForeignKey("tag.id"), primary_key=True), ) class Article(db.Model): __tablename__ = 'article' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100)) content = db.Column(db.Text) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) author = db.relationship("User", backref="articles") tags = db.relationship("Tag", secondary=article_tag_table, backref="tags")
from ext import db from models import BaseModel class Student(db.Model, BaseModel): sid = db.Column(db.Integer, primary_key=True, autoincrement=True) sname = db.Column(db.String(30)) courses = db.relationship('Course', secondary='grade', backref='students') __tablename__ = 'student' class Course(db.Model, BaseModel): cid = db.Column(db.Integer, primary_key=True, autoincrement=True) cname = db.Column(db.String(30)) __tablename__ = 'course' grade = db.Table('grade', db.Column('sid', db.Integer, db.ForeignKey('student.sid')), db.Column('cid', db.Integer, db.ForeignKey('course.cid')))
# -*- coding:utf-8 -*- from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property from sqlalchemy.exc import SQLAlchemyError from flask import url_for from passlib.apps import custom_app_context as pwd_context from itsdangerous import TimedJSONWebSignatureSerializer as Serializer, BadSignature, SignatureExpired from ext import db import app roles_users = db.Table( 'roles_users', db.Column('user_id', db.Integer, db.ForeignKey('users.id')), db.Column('role_id', db.Integer, db.ForeignKey('roles.id'))) group_relationship = db.Table('group_relationship', db.Column('group_id', db.Integer, db.ForeignKey('user_groups.id'), nullable=False), db.Column('user_id', db.Integer, db.ForeignKey('users.id'), nullable=False), mysql_charset='utf8mb4') friendship = db.Table('friends', db.Column('user_id', db.Integer, db.ForeignKey('users.id')), db.Column('friend_id', db.Integer, db.ForeignKey('users.id')),
# rets: a json string of validity def get_resp(self): return json.dumps(self.__map) # return Response(json.dumps({'valid': self._valid, # 'info': self._info}), # content_type='application/json') # Membership of some user for some group membership = db.Table( 'membership', db.Column('user_id', db.Integer, db.ForeignKey('user.id'), primary_key=True), db.Column('group_id', db.Integer, db.ForeignKey('group.id'), primary_key=True)) # Friendship between user and user friendship = db.Table( 'friendship', db.Column('user_id', db.Integer, db.ForeignKey('user.id'), primary_key=True), db.Column('friend_id', db.Integer, db.ForeignKey('user.id'),
from dateutil.relativedelta import relativedelta from marshmallow import ( pre_load, post_load, validate, ) from numpy import percentile from ext import ( db, ma, ) relationship = db.Table( "relationship", db.Column("citizen_id", db.ForeignKey("citizen.id"), primary_key=True), db.Column("relative_id", db.ForeignKey("citizen.id"), primary_key=True)) class Citizen(db.Model): id = db.Column(db.Integer, primary_key=True) import_id = db.Column(db.Integer, db.ForeignKey("import.import_id")) citizen_id = db.Column(db.Integer) town = db.Column(db.String) street = db.Column(db.String) building = db.Column(db.String) apartment = db.Column(db.Integer) name = db.Column(db.String) birth_date = db.Column(db.Date) gender = db.Column(db.String) # Many-To-Many relationship
email = db.Column(db.String(120), index=True, unique=True) password_hash = db.Column(db.String(128)) is_admin = db.Column(db.Boolean, default=False) def __repr__(self): return '<User {}>'.format(self.username) def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password) ass = db.Table('ass', db.Column('stu_id', db.Integer, db.ForeignKey('student.id')), db.Column('teach_id', db.Integer, db.ForeignKey('teacher.id'))) # Student info : ## name, ## gender, ## phone, ## exam_type, ## exam_score, ## tasks ## courses, ## teachers, class Student(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), index=True, unique=True)
from ext import db from datetime import datetime from werkzeug.security import generate_password_hash,check_password_hash class permissions(): user_info=1 banner=2 posts=4 pinglun=8 bankuai=16 user_manager=32 role_user=db.Table( "role_user", db.Model.metadata, db.Column("rid",db.Integer,db.ForeignKey("role.id")), db.Column("uid",db.Integer,db.ForeignKey("user.id")) ) class role(db.Model): __tablename__="role" id = db.Column(db.Integer, primary_key=True, autoincrement=True) role_name=db.Column(db.String(20)) desc=db.Column(db.String(200)) permis=db.Column(db.Integer,nullable=False,default=permissions.user_info) class User(db.Model): __tablename__="user" id=db.Column(db.Integer,primary_key=True,autoincrement=True) username=db.Column(db.String(20),nullable=False) _password=db.Column(db.String(200),nullable=False)
return column def serialize(model): """Transforms a model into a dictionary which can be dumped to JSON.""" # first we get the names of all the columns on your model columns = [c.key for c in class_mapper(model.__class__).columns] # then we return their values in a dict return dict((c, getattr(model, c)) for c in columns) roles = db.Table( 'roles_users', db.Column('user_id', db.Integer, db.ForeignKey('users.id'), primary_key=True), db.Column('role_id', db.Integer, db.ForeignKey('roles.id'), primary_key=True)) var_queries = db.Table( 'variables_queries', db.Column('query_id', db.Integer, db.ForeignKey('query_group.id', onupdate="CASCADE", ondelete="CASCADE"), primary_key=True), db.Column( 'variable_id',
USER_INFO = 1 # 00000001 BANNER = 2 # 00000010 POSTS = 4 # 00000100 COMMON = 8 # 00001000 PLATE = 16 # 00010000 FRONT_USER = 32 # 00100000 CMS_USER = 64 # 01000000 CMS_USER_GROUP = 128 # 10000000 # 注意Table大写 cms_role_user = db.Table( 'cms_role_user', db.Column('cms_role_id', db.Integer, db.ForeignKey('role.id'), primary_key=True), db.Column('cms_user_id', db.Integer, db.ForeignKey('user.id'), primary_key=True)) class Role(db.Model): __tablename__ = 'role' id = db.Column(db.Integer, primary_key=True, autoincrement=True) roleName = db.Column(db.String(20), unique=True, nullable=False) desc = db.Column(db.String(200)) permissions = db.Column(db.Integer, default=Permission.USER_INFO) # 中间表绑定到角色zh users = db.relationship('User', secondary=cms_role_user,
destination = db.Column(db.Integer, nullable=True) # 目的地 tele = db.Column(db.String(15), nullable=True) # 电话 wechat = db.Column(db.String(20), nullable=True) # 微信 qq = db.Column(db.String(15), nullable=True) # QQ # 认证方式 # 0:实名认证;1:交押金 # identified = db.Column(db.Integer, nullable=False) # credit = db.Column(db.Integer, nullable=False) # 信用分 express_user = db.Table( 'express_user', db.Column('express_id', db.Integer, db.ForeignKey('express.id'), primary_key=True), db.Column('user_id', db.Integer, db.ForeignKey('user.id'), primary_key=True)) class Express(db.Model): __tablename__ = 'express' id = db.Column(db.Integer, primary_key=True, autoincrement=True) owner_id = db.Column(db.Integer, nullable=False) # 此快递的主人 taker_id = db.Column(db.Integer, nullable=True) # 此快递的代拿人 users = db.relationship('User', secondary=express_user, backref=db.backref('expresses')) # 此快递有关的用户