以下羅列了使用關係型資料庫中常見關係定義模板**
示例**
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 有語法提示,省去自己...