flask SQLALchemy外键及约束
时间:2021-07-01 10:21:17
帮助过:17人阅读
flask
import Flask,session
from flask_sqlalchemy
import SQLAlchemy
import config
app = Flask(
__name__)
app.config.from_object(config)
db =
SQLAlchemy(app)
class User(db.Model):
__tablename__ =
‘user‘
id = db.Column(db.Integer,primary_key=True,autoincrement=
True)
username = db.Column(db.String(100),nullable=
False)
class Article(db.Model):
__tablename__ =
‘article‘
id = db.Column(db.Integer,primary_key=True,autoincrement=
True)
title = db.Column(db.String(100),nullable=False)
#zhiding 100 zifu
content = db.Column(db.Text,nullable=
False)
# 这里要与相关联的表的类型一直, user.id 表示关联到user表下的id字段
author_id = db.Column(db.Integer,db.ForeignKey(
‘user.id‘))
#给这个article模型添加一个author属性(关系表),backref为定义反向引用,可以通过‘User.article’这个模型(表)访问这个表的所有内容
author = db.relationship(
‘User‘,backref=db.backref(
‘articles‘))
db.create_all()
@app.route(‘/‘)
def index():
#添加数据
user1 = User(username="test_flask2")
db.session.add(user1)
article = Article(title=‘eeee‘,content=‘cfffff‘,author_id=1) #注意,这里的author_id必须存在,即user表下的id字段的内容必须存在
db.session.add(article)
db.session.commit()
#查询数据---常规方法
article = Article.query.filter(Article.title=="eeee").first()
author_id = article.author_id
user = User.query.filter(User.id==author_id) #获取user表的所有数据
print (user.username) #获取User表下的username字段的内容
#通过sqlalchemy实现查询数据
article = Article.query.filter(Article.title=="eeee").first()
print (article.author.username) #打印name字段的内容,
user = User.query.filter(User.username=="test_flask3").first()
print (user.articles) #查询所有的文章,这里需要注意的是这里的articles要与 article表下author字段里的backref设定的articles 字符串相同
return ‘Hello World!‘
if __name__ ==
‘__main__‘:
app.run(host=
‘192.168.132.130‘,debug=True)
flask SQLALchemy外键及约束
标签:gpo hello ati creat .text 外键 use mode ret