flask中資料庫表的多對多模型的建立
多對多關係描述有一個唯一的點就是:需要新增一張單獨的表去記錄兩張表之間的對應關係 ,然後在任意一個模型中增加關係引用即可。
聯合主鍵:多個欄位合在一起當主鍵
以下是程式碼部分:
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # 配置資料庫資訊 app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]/student_course' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) # 多對多模型需要新增一張單獨的表去記錄兩張表之間的對應關係 tb_student_course = db.Table('tb_student_course', db.Column('student_id', db.Integer, db.ForeignKey('students.id')), db.Column('course_id', db.Integer, db.ForeignKey('courses.id')) ) # 建立學生表 class Students(db.Model): __tablename__ = 'students' id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(64),unique=True) # 建立課程表 class Course(db.Model): __tablename__ = 'courses' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) # 在任意一個模型中新增關係引用 students = db.relationship('Students', secondary=tb_student_course, #### 引用例項物件,不加引號 backref='courses', lazy='dynamic') @app.route('/') def helloworld(): return 'hello world' if __name__ == '__main__': db.drop_all() db.create_all() # 新增測試資料 stu1 = Students(name='張三') stu2 = Students(name='李四') stu3 = Students(name='王五') cou1 = Course(name='物理') cou2 = Course(name='化學') cou3 = Course(name='生物') stu1.courses = [cou2, cou3] stu2.courses = [cou2] stu3.courses = [cou1, cou2, cou3] db.session.add_all([stu1, stu2, stu2]) db.session.add_all([cou1, cou2, cou3]) db.session.commit() app.run(debug=True)
相關推薦
flask中資料庫表的多對多模型的建立
多對多關係描述有一個唯一的點就是:需要新增一張單獨的表去記錄兩張表之間的對應關係 ,然後在任意一個模型中增加關係引用即可。 聯合主鍵:多個欄位合在一起當主鍵以下是程式碼部分:from flask import Flask from flask_sqlalchemy impo
JDBC上關於資料庫中多表操作一對多關係和多對多關係的實現方法--轉
原文地址---- https://www.cnblogs.com/pangguoming/p/7028322.html 黑馬程式設計師 我們知道,在設計一個Java bean的時候,要把這些BEAN 的資料存放在資料庫中的表結構,然而這些資料庫中的表直接又有些特殊
flask資料庫之多對多模型演練
多對多演練在專案開發過程中,會遇到很多資料之間多對多關係的情況,比如:學生網上選課(學生和課程)老師與其授課的班級(老師和班級)使用者與其收藏的新聞(使用者和新聞)等等...所以在開發過程中需要使用 ORM 模型將表與表的多對多關聯關係使用程式碼描述出來。多對多關係描述有一個
資料庫中多對多關係的中間表的命名規則
在關係資料庫中,除了一對一,一對多外,還有一個多對多關係.前兩個關係都只需要兩個表本身就能表達清楚他們之間的關係,而多對多關係則需要第三張中間表來表達清楚兩張表之間的關係. 中間表在一般情況下是由三個欄位組成:
python flask(多對多表查詢)
color mat integer ring 網上 uniq 自己的 class 根據 我們在flask的學習中,會難免遇到多對多表的查詢,今天我也遇到了這個問題。那麽我想了好久。也沒有想到一個解決的辦法,試了幾種方法,可能是思路的限制我放棄了,後來,我就在網上百度
TP中的模型關聯的多對多關系
tp5 php modelTP5中完全推翻了3.2的做法,不再使用原來的查詢語句,比如select,join之類的條件查詢。而是使用模型關聯,一對多和多對多的關系進行關聯。方便用戶調用數據,減少代碼的編寫量。下面直接開始上代碼:role.php(model層)class Role extends Mode
ef core中如何實現多對多的表映射關系
uil set ring one int 實現 log ons lB 文檔:https://docs.microsoft.com/en-us/ef/core/modeling/relationships class MyContext : DbContext {
使用GreenDao建立表、關聯表(一對一,一對多,多對多)、CURD、升級資料庫等操作
應用場景:從照片中找出包含有使用者人臉的照片,並儲存該照片中的人臉特徵、使用該特徵和使用者人臉特徵對比,滿足條件,照片就儲存到該使用者表裡 一、建立表 GreenDao託管地址:https://github.com/greenrobot
flask連線mysql資料庫的一對一,一對多,多對多的處理關係。
Y18 以學生表與班級表為例,進行一對一,與一對多操作說明。 簡單部署: 1、建立flask資料夾,在資料夾中建立python檔案,命名為app,其中程式碼: from flask import Flask app = Flask(__name__) 2
django連線mysql資料庫的一對一,一對多,多對多關係模型的建立
Y19 介紹如何建立各種關係的資料模型,具體實現各種功能 先配置settings.py中連線mysql資料庫:(Y12有介紹) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.m
flask中一對一,一對多以及多對多關係的設定
一對多關係: class Grade(db.Model): id=db.Column(db.Integer,primary_key=True) name=db.Column(db.String(20),nullable=False) num = db.Column(db.Int
資料庫多表關聯對多對關係
資料庫多表關聯對多對關係 本文章解決資料庫設計多表關聯配置問題,多對多關係! 設計思路: 應用場景: 1,區域表(欄位:id(城市id)、name(城市名字)) 表名:pms_region 2,中間表(欄位:shipping_area_id、re
JPA中多對多表關係的刪除操作,如何刪除放棄維護關聯關係的一方和中間表的紀錄
資料庫中的表 使用者表:在配置實體類的時候放棄了維護關聯關係的權利 角色表: 中間表: 需求:刪除t_user表中的user_id 為1的使用者,並刪除相關的中間表紀錄。 程式碼: @Test public
Django中資料庫的資料關係:一對一,一對多,多對多
一對一: 一對一的關係極為一個數據僅對應一個數據,用下圖的結構圖可以幫助理解: 下面用程式碼實現一下,首先要建立工程專案如下: 接著,我們定義模型: 來到models.py檔案,建立兩個模型: from django.db import models #
MyCat分片規則(全域性表,ER分片表,多對多關聯,主鍵分片VS非主鍵分片),MyCat常用的分片規則(15中分片規則),自定義MyCat分片規則
1 MyCat分片規則 資料切分中重要的幾條原則,其中有幾條資料冗餘,表分組(Table Group)。 1.1全域性表 如果你的業務中有些資料類似於資料字典,比如配置檔案的配置,常用業務的配置或資料量不是很大,很少變動的表,這些表往往不是特別大,而且大部分的業務場景都
flask 多對多關係 主從表之間查詢
model層 class Studentnew(db.Model): id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(20),unique=True) #
獲取模型中完整的多對多資料
可獲取到model中query多對多的完整資料 query = queryset.order_by(ordering).first() for topic in query._meta.many_to_many: lista = l
JPA中多對多表關係的刪除操作,如何只刪除一方和中間表的紀錄
資料庫中的表 使用者表: 角色表: 中間表: 需求:刪除t_user表中的user_id 為1的使用者,並刪除相關的中間表紀錄。 程式碼: @Test public void testRemove() {
資料庫中表與表之間建立關係(一對多、多對多)
一、一對多的關係 例:公司與員工的關係,公司為一,公司員工為多,需要在多方建立外來鍵指向一方的主鍵。 一對多讓兩個實體類之間相互表示 (1)一個公司裡面有多個員工。 private Set<yuangong> yuangongSet=new HashSet
Hibernate中多對多的annotation的寫法(中間表可以有多個欄位)
一般情況下,多對多的關聯關係是需要中間表的; 情況一:如果中間表僅僅是做關聯用的,它裡面僅有2個外來鍵做聯合主鍵,則使用ManyToMany(不用寫中間表的Model,只需要寫出兩張主表的model即可) 學生表 @Entity@Table(name = "T_STUDENT")@SequenceGener