Flask中Mysql資料庫常見關係模板

2021-09-24 02:37:00 字數 2678 閱讀 2730

以下羅列了使用關係型資料庫中常見關係定義模板**

示例**

class role(db.model):

"""角色表"""

__tablename__ = 'roles'

id = db.column(db.integer, primary_key=true)

name = db.column(db.string(64), unique=true)

users = db.relationship('user', backref='role', lazy='dynamic')

class user(db.model):

"""使用者表"""

__tablename__ = 'users'

id = db.column(db.integer, primary_key=true)

name = db.column(db.string(64), unique=true, index=true)

示例**

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 student(db.model):

__tablename__ = "students"

id = db.column(db.integer, primary_key=true)

name = db.column(db.string(64), unique=true)

courses = db.relationship('course', secondary=tb_student_course,

backref=db.backref('students', lazy='dynamic'),

lazy='dynamic')

class course(db.model):

__tablename__ = "courses"

id = db.column(db.integer, primary_key=true)

name = db.column(db.string(64), unique=true)

示例**

class comment(db.model):

__tablename__ = "comments"

id = db.column(db.integer, primary_key=true)

content = db.column(db.text, nullable=false)

parent_id = db.column(db.integer, db.foreignkey("comments.id"))

parent = db.relationship("comment", remote_side=[id],

backref=db.backref('childs', lazy='dynamic'))

# 測試**

if __name__ == '__main__':

db.drop_all()

db.create_all()

com11.parent = com1

com12.parent = com1

db.session.add_all([com1, com2, com11, com12])

db.session.commit()

示例**

tb_user_follows = db.table(

"tb_user_follows",

db.column('follower_id', db.integer, db.foreignkey('info_user.id'), primary_key=true), # 粉絲id

db.column('followed_id', db.integer, db.foreignkey('info_user.id'), primary_key=true) # 被關注人的id

)class user(db.model):

"""使用者表"""

__tablename__ = "info_user"

id = db.column(db.integer, primary_key=true)

name = db.column(db.string(32), unique=true, nullable=false)

# 使用者所有的粉絲,新增了反向引用followed,代表使用者都關注了哪些人

followers = db.relationship('user',

secondary=tb_user_follows,

primaryjoin=id == tb_user_follows.c.followed_id,

secondaryjoin=id == tb_user_follows.c.follower_id,

backref=db.backref('followed', lazy='dynamic'),

lazy='dynamic')

flask中的資料庫遷移

在開發的過程中,需要修改資料庫的模型,而且需要在修改之後更新資料庫,最直接就是刪除舊表,但是會丟失資料。所有最好的方式就是資料庫遷移。它可以追蹤資料庫模型的變化,然後把變動應用到資料庫中。在flask中可以使用flask migrate擴充套件,來實現資料遷移。並且整合到flask script中,...

flask中資料庫的遷移

coding utf 8 from flask import flask from flask script import manager from flask sqlalchemy import sqlalchemy from flask migrate import migratecommand...

flask框架 MySQL資料庫基礎配置

1 flask sqlalchemy是乙個為 flask 應用增加 sqlalchemy 支援的擴充套件。它致力於簡化在 flask 中 sqlalchemy 的使用。2 sqlalchemy 是目前python中最強大的 orm框架,功能全面,使用簡單。orm優缺點 優點 1 有語法提示,省去自己...