Пример #1
0
from datetime import datetime

from utils import option
from utils.option_schemas.config import Config
from sqlalchemy.orm.exc import NoResultFound

from models import db
from models.mixins.CommentMixin import CommentMixin
from models.mixins.TimestampMixin import TimestampMixin

from utils.rfc3339 import rfc3339

tags_assoc = db.Table(
    'tags_assoc', db.Model.metadata,
    db.Column('tag_id', db.Integer, db.ForeignKey('tag.id'), primary_key=True),
    db.Column('post_id',
              db.Integer,
              db.ForeignKey('post.id'),
              primary_key=True))


class Category(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), nullable=False)
    posts = db.relationship('Post', back_populates='category', lazy=True)


class Tag(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), nullable=False)
    posts = db.relationship('Post',
Пример #2
0
from sqlalchemy import Column, ForeignKey, ForeignKeyConstraint
from sqlalchemy import Integer, String
from models import db

# 模型之间的关系不需要创建第三个模型类来实现第三张关系表的创建
# 创建用户和角色关系表
user_role = db.Table(
    'user_role',
    Column('user_id', Integer, ForeignKey('user.id', name='user_role_fk')),
    Column('role_id', Integer, ForeignKey('role.id', name='user_role_pk')))
# role_table = db.Table('role_QX',
#                       Column('role_id',Integer,ForeignKey('role.id',name='role_table_fk')),
#                       Column('QX_id',Integer,ForeignKey('QX.id',name='role_table_pk')))


class BaseModel(db.Model):
    __abstract__ = True  # 作用:不会创建模型的对应的表
    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(20), unique=True, nullable=False)


class QX(BaseModel):
    __tablename__ = 'qx'


class Role(BaseModel):
    __tablename__ = 'role'
    # QXS = db.relationship(QX,secondary=role_table)


class User(db.Model):
Пример #3
0
    CONTRACT_STATUS_DELETEPASS: u'同意撤单',
    CONTRACT_STATUS_PRE_FINISH: u'项目归档(预)',
    CONTRACT_STATUS_FINISH: u'项目归档(确认)',
    CONTRACT_STATUS_CHECKCONTRACT: u'审批合同通过'
}

STATUS_DEL = 0
STATUS_ON = 1
STATUS_CN = {
    STATUS_DEL: u'删除',
    STATUS_ON: u'正常',
}

framework_order_sales = db.Table(
    'framework_order_searchAd_sales',
    db.Column('sale_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('framework_order_id', db.Integer,
              db.ForeignKey('bra_searchAd_framework_order.id')))


class searchAdFrameworkOrder(db.Model, BaseModelMixin, CommentMixin,
                             AttachmentMixin):
    __tablename__ = 'bra_searchAd_framework_order'

    id = db.Column(db.Integer, primary_key=True)
    agent_id = db.Column(db.Integer,
                         db.ForeignKey('searchAd_agent.id'))  # 代理公司id
    agent = db.relationship('searchAdAgent',
                            backref=db.backref('agent_searchAd_order',
                                               lazy='dynamic'))
    client_id = db.Column(db.Integer, default=0)
Пример #4
0
# -*- coding: utf-8 -*-

from models import db
from sqlalchemy import Column, Integer, String, Text, ForeignKeyConstraint


class BaseModel(db.Model):
    __abstract__ = True  # 作用:不会创建作为普通模型的对应表
    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(20), nullable=False, unique=True)


# 模型之间的关系不需要创建第三个模型来实现第三张关系表创建
# 创建用户和角色的关系表
user_role = db.Table('user_role',
                     Column('user_id', Integer, db.ForeignKey('user.id')),
                     Column('role_id', Integer, db.ForeignKey('role.id')))

role_privilege = db.Table(
    'role_privilege', Column('role_id', Integer, db.ForeignKey('role.id')),
    Column('privilege_id', Integer, db.ForeignKey('privilege.id')))


class Privilege(BaseModel):
    __tablename__ = 'privilege'


class Role(BaseModel):
    __tablename__ = 'role'
    privileges = db.relationship(Privilege,
                                 secondary=role_privilege,
Пример #5
0
STATUS_ON = 1
STATUS_CN = {
    STATUS_DEL: u'删除',
    STATUS_ON: u'正常',
}

BACK_MONEY_STATUS_END = 0
BACK_MONEY_STATUS_NOW = 1
BACK_MONEY_STATUS_CN = {
    BACK_MONEY_STATUS_END: u'回款完成',
    BACK_MONEY_STATUS_NOW: u'正在回款',
}

sales = db.Table(
    'searchad_rebate_order_sales',
    db.Column('sale_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('searchad_rebate_order_id', db.Integer,
              db.ForeignKey('searchad_bra_rebate_order.id')))

replace_sales = db.Table(
    'searchad_rebate_order_replace_sales',
    db.Column('replace_sale_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('searchad_rebate_order_id', db.Integer,
              db.ForeignKey('searchad_bra_rebate_order.id')))

operater_users = db.Table(
    'searchad_rebate_order_users_operater',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('searchad_rebate_order_id', db.Integer,
              db.ForeignKey('searchad_bra_rebate_order.id')))
designer_users = db.Table(
Пример #6
0
    def __init__(self, username):
        self.username = username

    def __repr__(self):
        return '<User {}>'.format(self.username)

    def to_dict(self):
        return {
            "id": self.id,
            "username": self.username,
        }


categorys = db.Table(
    'categorys', db.Column('id', db.Integer, primary_key=True),
    db.Column('post_id', db.Integer, db.ForeignKey('post.id')),
    db.Column('category_id', db.Integer, db.ForeignKey('category.id')))


class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.Text)
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    categorys = db.relationship('Category',
                                secondary=categorys,
                                backref=db.backref('posts', lazy='dynamic'))

    def __repr__(self):
        return '<Post {}>'.format(self.body)
Пример #7
0
    STATUS_DEL: u'删除',
    STATUS_ON: u'正常',
}

BACK_MONEY_STATUS_END = 0
BACK_MONEY_STATUS_NOW = 1
BACK_MONEY_STATUS_CN = {
    BACK_MONEY_STATUS_END: u'回款完成',
    BACK_MONEY_STATUS_NOW: u'正在回款',
}

ECPM_CONTRACT_STATUS_LIST = [2, 4, 5]

direct_sales = db.Table('searchAd_client_order_direct_sales',
                        db.Column(
                            'sale_id', db.Integer, db.ForeignKey('user.id')),
                        db.Column(
                            'client_order_id', db.Integer, db.ForeignKey('searchAd_bra_client_order.id'))
                        )
agent_sales = db.Table('searchAd_client_order_agent_sales',
                       db.Column(
                           'agent_sale_id', db.Integer, db.ForeignKey('user.id')),
                       db.Column(
                           'client_order_id', db.Integer, db.ForeignKey('searchAd_bra_client_order.id'))
                       )
table_medium_orders = db.Table('searchAd_client_order_medium_orders',
                               db.Column(
                                   'order_id', db.Integer, db.ForeignKey('searchAd_bra_order.id')),
                               db.Column(
                                   'client_order_id', db.Integer, db.ForeignKey('searchAd_bra_client_order.id'))
                               )
Пример #8
0
import datetime
import json


def table_args():
    return {
        'useexisting': True,
        'mysql_engine': 'InnoDB',
        'mysql_charset': 'utf8'
    }


InterfaceToMenu = db.Table(
    'db_interface_to_menu',
    db.Column('menu_id', db.String(36), db.ForeignKey('db_menu.menu_id', ondelete='CASCADE')),
    db.Column('interface_id', db.String(36), db.ForeignKey('db_interface.interface_id', ondelete='CASCADE')),
    useexisting=True,
    mysql_engine='InnoDB',
    mysql_charset='utf8'
)

InterfaceToRole = db.Table(
    'db_interface_to_role',
    db.Column('role_id', db.String(36), db.ForeignKey('db_role.role_id', ondelete='CASCADE')),
    db.Column('interface_id', db.String(36), db.ForeignKey('db_interface.interface_id', ondelete='CASCADE')),
    useexisting=True,
    mysql_engine='InnoDB',
    mysql_charset='utf8'
)

MenuToRole = db.Table(
    'db_menu_to_role',
Пример #9
0
    DISCOUNT_ADD: u'无折扣',
}

DISCOUNT_SALE = {
    # DISCOUNT_SELECT: u'请选择',
    DISCOUNT_50: u'5折',
    DISCOUNT_60: u'6折',
    DISCOUNT_70: u'7折',
    DISCOUNT_ADD: u'无折扣',
}

HEADER_BEFORE_DATE = [u"售卖类型", u"预订状态", u"展示位置", u"广告标准"]
HEADER_AFTER_DATE = [u"总预订量", u"刊例单价", u"刊例总价", u"折扣", u"净价"]

operater_users = db.Table(
    'searchAd_order_users_operater',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('order_id', db.Integer, db.ForeignKey('searchAd_bra_order.id')))
designer_users = db.Table(
    'searchAd_order_users_designerer',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('order_id', db.Integer, db.ForeignKey('searchAd_bra_order.id')))
planer_users = db.Table(
    'searchAd_order_users_planer',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('order_id', db.Integer, db.ForeignKey('searchAd_bra_order.id')))


class searchAdOrder(db.Model, BaseModelMixin, CommentMixin, AttachmentMixin):
    __tablename__ = 'searchAd_bra_order'

    id = db.Column(db.Integer, primary_key=True)
Пример #10
0
#!/usr/bin/env python
# -*- coding:UTF-8 -*-
'''
@Description: 系统相关的几张表结构
@Author: Zpp
@Date: 2019-09-05 15:57:55
@LastEditTime: 2020-05-11 10:22:14
@LastEditors: Zpp
'''
from models import db
import datetime
import json

InterfaceToMenu = db.Table(
    'db_interface_to_menu',
    db.Column('menu_id', db.String(36),
              db.ForeignKey('db_menu.menu_id', ondelete='CASCADE')),
    db.Column('interface_id', db.String(36),
              db.ForeignKey('db_interface.interface_id', ondelete='CASCADE')))


class Admin(db.Model):
    '''
    管理员
    '''
    __tablename__ = 'db_admin'
    id = db.Column(db.Integer,
                   nullable=False,
                   primary_key=True,
                   index=True,
                   autoincrement=True)
    admin_id = db.Column(db.String(36),
Пример #11
0
#!/usr/bin/python3
# -*- encoding: utf-8 -*-

from models import db
from datetime import datetime


class Poeter(db.Model):
    __tablename__ = 'poeter'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(100), nullable=False)
    state = db.Column(db.String(10))


poetry_tag = db.Table('poetry_tag',
    db.Column('poetry_id', db.Integer, db.ForeignKey('poetry.id'), primary_key=True),
    db.Column('category_id', db.Integer, db.ForeignKey('poetry_category.id'), primary_key=True)
)


class PoetryCategory(db.Model):
    __tablename__ = 'poetry_category'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), nullable=False)


class Poetry(db.Model):
    __tablename__ = 'poetry'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(200), nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
    content_path = db.Column(db.Text)
Пример #12
0
from models import db

# 中間テーブル
battle_result_members = db.Table(
    'battle_result_members', db.metadata,
    db.Column('battle_result_id', db.Integer,
              db.ForeignKey('battle_results.id')),
    db.Column('battle_member_id', db.Integer,
              db.ForeignKey('battle_members.id')))
Пример #13
0
    print "initializing messages"
    if not MessagesComponent.query.get(1):
        db.session.add(MessagesComponent())
        db.session.commit()


def get_dm_messages():
    MessagesComponent.query.get(DM_MESSAGES_ID)


recipients_table = db.Table(
    'message_recipients',
    db.Column('message_id',
              db.Integer,
              db.ForeignKey('message.id'),
              primary_key=True),
    db.Column('recipient_id',
              db.Integer,
              db.ForeignKey('messages_component.id'),
              primary_key=True),
)


class MessagesComponent(db.Model):
    id = db.Column(db.Integer, primary_key=True)


class Message(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String(128))
Пример #14
0
FIFTY = 50
SEVENTY_FIVE = 75
HUNDERD = 100
ERROR = 101

OCCUPY_RESOURCE_PRECENT_CN = {
    EMPTY: "",
    TWENTY_FIVE: "twenty-five",
    FIFTY: "fifty",
    SEVENTY_FIVE: "seventy-five",
    HUNDERD: "hundred",
    ERROR: "error"
}

ad_position_unit_table = db.Table(
    'searchAd_ad_position_unit',
    db.Column('position_id', db.Integer, db.ForeignKey('ad_position.id')),
    db.Column('unit_id', db.Integer, db.ForeignKey('ad_unit.id')))


class searchAdMedium(db.Model, BaseModelMixin, AttachmentMixin, CommentMixin):
    __tablename__ = 'searchAd_medium'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    abbreviation = db.Column(db.String(100))
    owner_id = db.Column(db.Integer, db.ForeignKey('team.id'))
    owner = db.relationship('Team',
                            backref=db.backref('searchAd_mediums',
                                               lazy='dynamic'))
    tax_num = db.Column(db.String(100))  # 税号
    address = db.Column(db.String(100))  # 地址
Пример #15
0
#!/usr/bin/env python
# -*- coding:UTF-8 -*-
'''
@Description: 系统相关的几张表结构
@Author: Zpp
@Date: 2019-09-05 15:57:55
@LastEditTime: 2020-03-31 09:47:39
@LastEditors: Zpp
'''
from models import db
import datetime

MenuToRole = db.Table(
    'db_menu_to_role',
    db.Column('role_id', db.String(36),
              db.ForeignKey('db_role.role_id', ondelete='CASCADE')),
    db.Column('menu_id', db.String(36),
              db.ForeignKey('db_menu.menu_id', ondelete='CASCADE')))

InterfaceToRole = db.Table(
    'db_interface_to_role',
    db.Column('role_id', db.String(36),
              db.ForeignKey('db_role.role_id', ondelete='CASCADE')),
    db.Column('interface_id', db.String(36),
              db.ForeignKey('db_interface.interface_id', ondelete='CASCADE')))


class Admin(db.Model):
    '''
    管理员
    '''
Пример #16
0
from models import db
from datetime import datetime

likes = db.Table(
    'likes',
    db.Column('post_id',
              db.Integer,
              db.ForeignKey('post.id'),
              primary_key=True),
    db.Column('user_id',
              db.Integer,
              db.ForeignKey('user.id'),
              primary_key=True))


# Comments = db.Table('Comments',
#     db.Column('post_id', db.Integer, db.ForeignKey('post.id'), primary_key=True),
#     db.Column('user_id', db.Integer, db.ForeignKey('user.id'), primary_key=True),
#     db.Column('commenttext',db.String(50))
# )
class Comment(db.Model):
    __tablename__ = 'Comment'
    post_id = db.Column(db.Integer,
                        db.ForeignKey('post.id'),
                        primary_key=True,
                        unique=False)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('user.id'),
                        primary_key=True,
                        unique=False)
    comments = db.Column(db.String(100))
Пример #17
0
from enum import Enum

from models import db
from models.base import UserMixin, SuspendMixin
from models.authorization.base_user import BaseUser

user_cuisines = db.Table(
    'user_cuisines',
    db.Column('cuisine_id',
              db.BigInteger,
              db.ForeignKey('cuisines.id'),
              primary_key=True),
    db.Column('user_id',
              db.BigInteger,
              db.ForeignKey('users.id'),
              primary_key=True))

user_types = db.Table(
    'user_types',
    db.Column('type_id',
              db.BigInteger,
              db.ForeignKey('restaurant_types.id'),
              primary_key=True),
    db.Column('user_id',
              db.BigInteger,
              db.ForeignKey('users.id'),
              primary_key=True))

user_ingredients = db.Table(
    'user_ingredients',
    db.Column('ingredient_id',
Пример #18
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 20/6/5 19:07
# @Author : xjm
# @Site : 
# @File : user.py
# @Software: PyCharm
from werkzeug.security import check_password_hash
from models import db
from datetime import datetime


# 模型之间的关系不需要创建第三个模型类实现第三张关系表创建
# 创建用户和角色的关系表
user_role = db.Table('t_user_role',
                     db.Column('uid', db.Integer, db.ForeignKey('t_user.id', name='user_fk')),
                     db.Column('rid', db.Integer, db.ForeignKey('t_role.id', name='role_fk')))


class BaseModel(db.Model):
    __abstract__ = True  # 作用:不会作为普通模型的创建对应的表(抽象模型)
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(20), unique=True, nullable=False)


# 继承BaseModel:
class Role(BaseModel):  # 用户角色
    __tablename__ = 't_role'  # 设置数据库中的表名(默认为当前类名的小写)

    def __repr__(self):
        return '<Role %r>' % self.name
Пример #19
0
def init_knowledge():
    print "initializing knowledge"
    db.session.add(Knowledge(name='Basic Info', content='trololol'))
    for i in range(3):
        db.session.add(
            Knowledge(name='More Basic Info: ' + str(i),
                      content='infofofofof'))
    db.session.commit()


def list_knowledge():
    return Knowledge.query.all()


knowledge_to_character = db.Table(
    'knowledge_to_component',
    db.Column('knowledge_id', db.Integer, db.ForeignKey('knowledge.id')),
    db.Column('character_id', db.Integer, db.ForeignKey('character.id')))


class Knowledge(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text, default='New Knowledge')
    content = db.Column(db.Text, default='content...')
    owners = db.relationship('Character',
                             secondary=knowledge_to_character,
                             backref='knowledge')

    def __serialize__(self, full=True):
        if full:
            return {
                'id': self.id,