from 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)