zoukankan      html  css  js  c++  java
  • sqlalchemy ————关联表

    1、创建模型的时候做外键关联

    class UI_ID(db.Model):
        __tablename__ = 'ui_id'
        id = db.Column(INTEGER(11), primary_key=True, comment='id')
        id_path = db.Column(INTEGER(11), comment='路径地址')
        id_name = db.Column(db.String(255), comment='id名称,可以不填写,由系统生成')
        id_model = db.Column(INTEGER(11), ForeignKey(
            "project_modules.id"), comment='所属模块')
        mk_user = db.Column(INTEGER(11), ForeignKey(
            "user.userid"), comment='创建人')
        mk_time = db.Column(DateTime,  comment='创建时间')
        up_time = db.Column(DateTime,  comment='更新时间')
        id_pro = db.Column(db.String(255),  comment='ID 描述')
    
        module = db.relationship(
            'Project_modules', backref='moduleid_fo_pro_module')
        user1 = db.relationship(
            'User', primaryjoin='UI_ID.mk_user == User.userid')

      主要使用到两个函数  ForeignKey、relationship 。ForeignKey是注明要关联的表以及关联的列,relationship是与关联表做一个映射关系

    2、自关联表结构 

    class Project_modules(db.Model):
        __tablename__ = 'project_modules'
        id = db.Column(INTEGER(11), primary_key=True, comment='模块ID')
        p_id = db.Column(INTEGER(11), comment='项目ID')
        name = db.Column(db.String(255), comment='模块名称')
        father_id = db.Column(INTEGER(11), ForeignKey(
            'project_modules.id'), comment='父级ID')
        mk_user = db.Column(db.String(255), comment='创建人')
        mk_time = db.Column(DateTime,  comment='创建时间')
        up_time = db.Column(DateTime,  comment='更新时间')
    
        module = db.relationship(
            'Project_modules', remote_side=[id], backref='module_fo_module')

      创建方式与外键关联区别不大、只是在relationship函数内增加了一个remote_side=[id]的字段,意思是标明当前表的哪一列

    3、多对多:

    待续。。。。

    关联表的查询方式: ##############看不懂拉到,反正也是我自己看

  • 相关阅读:
    黄聪:WordPress动作钩子函数add_action()、do_action()源码解析
    黄聪:使用WORDPRESS自带AJAX方法
    黄聪:get_posts 函数 | wordpress
    黄聪:wordpress伪静态的原理
    黄聪:wordpress如何开启文章格式post format
    黄聪:Xmind修改默认字体风格设置
    黄聪:让WordPress主题支持语言本地化(使用poedit软件实现中文翻译功能)
    ArcGIS Pro二次开发-选择gdb
    arcgis pro2.5 改变地图范围
    创建用户SQL
  • 原文地址:https://www.cnblogs.com/yc-c/p/12714782.html
Copyright © 2011-2022 走看看