当前位置:Gxlcms > 数据库问题 > flask SQLALchemy外键及约束

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   

人气教程排行