from .users import Users from .posts import Posts from app.exts import db #添加用户与帖子的收藏中间表 collections = db.Table( "collections", db.Column('user_id', db.Integer, db.ForeignKey("users.id")), db.Column('posts_id', db.Integer, db.ForeignKey("posts.id")), )
import datetime from app.exts import db collection = db.Table( 'collection', db.Column('book_id', db.Integer, db.ForeignKey('book.id'), primary_key=True), db.Column('publisher_id', db.Integer, db.ForeignKey('publisher.id'), primary_key=True), ) class Author(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(20), unique=True) age = db.Column(db.Integer, default=10) sex = db.Column(db.String(20), default=0) email = db.Column(db.String(50)) class Book(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(50), unique=True) date = db.Column(db.DateTime, default=datetime.datetime.now) author_id = db.Column(db.Integer, db.ForeignKey('author.id')) author = db.relationship('Author', backref=db.backref('books'))
# permission = db.relationship('permission',backref='m_manager') project = db.relationship('Project', secondary='manager_project', backref='m_manager') permission = db.relationship('Permission', secondary='manager_permission', backref='m_manager') language = db.relationship('Language', secondary='manager_language', backref=db.backref('m_manager', lazy='dynamic')) manager_project = db.Table( 'manager_project', # 第一个参数为表名称,第二个参数是 metadata,这俩个是必须的 # 'project_language', db.Model.Base.metadata, # 对于辅助表,一般存储要关联的俩个表的 id,并设置为外键 db.Column('project_id', db.Integer, db.ForeignKey('m_project.id')), db.Column('manager_id', db.Integer, db.ForeignKey('m_manager.id')), ) manager_language = db.Table( 'manager_language', # 第一个参数为表名称,第二个参数是 metadata,这俩个是必须的 # 'project_language', db.Model.Base.metadata, # 对于辅助表,一般存储要关联的俩个表的 id,并设置为外键 db.Column('language_id', db.Integer, db.ForeignKey('m_language.id')), db.Column('manager_id', db.Integer, db.ForeignKey('m_manager.id')), ) manager_permission = db.Table( 'manager_permission', # 第一个参数为表名称,第二个参数是 metadata,这俩个是必须的 # 'project_language', db.Model.Base.metadata,
import logging import enum from datetime import datetime from hobbit_core.db import Column, BaseModel, reference_col, SurrogatePK from sqlalchemy.orm import relationship, exc from app.exts import db goods_orders = db.Table( 'association_order', Column('order_id', db.Integer, db.ForeignKey('orders.id')), Column('good_id', db.Integer, db.ForeignKey('goods.id')) ) class Order(db.Model): __tablename__ = 'orders' id = Column(db.Integer, primary_key=True) order_number = Column(db.String(200), nullable=False, index=True) trad_no = Column(db.String(200), nullable=True) invoice_titile = Column(db.String(500), nullable=True) invoice_company = Column(db.String(500), nullable=True) invoice_content = Column(db.String(500), nullable=True) consignee_address = Column(db.String(500), nullable=True) order_price = Column(db.Float, nullable=False, default=1.0) pay_status = Column( db.Enum('未支付', '已支付', '已取消'), default='未支付', doc='订单状态:未支付, 已支付, 已取消') is_send = Column(db.Boolean(), default=False, doc='False代表非热销商品')
if self.password == pwd: return True else: return False def __repr__(self): return self.CustomConsume, self.CustomAccount # 辅助表db.Table声明由sqlalchemy进行管理 # 要放在两个模型上面不然会出现错误,有个模型要用到po名称 po = db.Table( 'po', db.Column('order_id', db.Integer, db.ForeignKey('order.id'), primary_key=True), db.Column('product_id', db.Integer, db.ForeignKey('product.id'), primary_key=True)) # 订单表 class Order(db.Model): __tablename__ = 'order' id = db.Column(db.Integer, primary_key=True, nullable=False, autoincrement=True) CustomId = db.Column(db.Integer, db.ForeignKey('custom.id')) ProductId = db.Column(db.String(30))
# coding: utf-8 from app.exts import db record_tag = db.Table( 'record_tag', db.Column('record_id', db.Integer, db.ForeignKey('record.id'), primary_key=True), db.Column('tag_id', db.Integer, db.ForeignKey('tag.id'), primary_key=True)) class Category(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(10), unique=True) items = db.relationship('Item', back_populates='category', cascade='all, delete-orphan') class Item(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(10), unique=True) category_id = db.Column(db.Integer, db.ForeignKey('category.id')) category = db.relationship('Category', back_populates='items') records = db.relationship('Record', back_populates='item', cascade='all, delete-orphan')
# class SubMenu(BaseModel): # __tablename__ = 'submenus' # exclude_columns = ['created_at', 'updated_at'] # auth_name = Column(db.String(32), nullable=False, index=True) # path = Column(db.String(256), nullable=False) # level = Column(db.Integer, nullable=True) # parent_id = Column(db.Integer, db.ForeignKey('menus.id')) # parent = relationship('Menu', backref=db.backref('children', order_by=auth_name)) # def __init__(self, auth_name, path, **kwargs): # db.Model.__init__(self, auth_name=auth_name, path=path, **kwargs) association_table = db.Table( 'association', # Column('menu_id', db.Integer, db.ForeignKey('menus.id', ondelete='CASCADE')), # Column('role_id', db.Integer, db.ForeignKey('roles.id', ondelete='CASCADE')) Column('menu_id', db.Integer, db.ForeignKey('menus.id')), Column('role_id', db.Integer, db.ForeignKey('roles.id'))) class Menu(db.Model): __tablename__ = 'menus' id = db.Column(db.Integer, primary_key=True) exclude_columns = ['created_at', 'updated_at'] auth_name = Column(db.String(32), nullable=False, index=True) path = Column(db.String(256), nullable=False) level = Column(db.Integer, nullable=True) created_at = Column(db.Date, nullable=True, default=datetime.now) updated_at = Column(db.Date, nullable=True, default=datetime.now) parent_id = db.Column(db.Integer, db.ForeignKey('menus.id')) children = db.relationship('Menu', back_populates='parent')
from .users import User from .posts import Posts from app.exts import db collections = db.Table( 'collections', db.Column('users_id', db.Integer, db.ForeignKey('user.id')), db.Column('posts_id', db.Integer, db.ForeignKey('posts.id')), )