from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
#以上导入所需模块
app = Flask(__name__) #实例化flask
app.config.from_object(config)#引入数据库配置
db = SQLAlchemy(app) #实例化sqlalchemy
#首先创建三张表
#最后创建中间表
article_tag = db.Table('article_tag',db.Column('article_id',db.Integer,db.ForeignKey('article.id'),primary_key=True), db.Column('tag_id',db.Integer,db.ForeignKey('tag.id'),primary_key=True))
#第一创建article表
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(100),nullable=False)
#两张表进行关联
tags = db.relationship('Tag',secondary =article_tag,backref = db.backref('articles') )
#第二创建标签表
class Tag(db.Model):
__tablename__ = 'tag'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(100), nullable=False) #标签名字
db.create_all()
@app.route('/')
def index():
article1 = Article(title = 'aaa')
article2 = Article(title = 'bbb')
tag1 = Tag(name = '111')
tag2= Tag(name = '222')
#对文章添加标签
article1 .tags.append(tag1)
article1 .tags.append(tag2)
article2 .tags.append(tag1)
article2 .tags.append(tag2)
db.session.add(article1)
db.session.add(article2)
db.session.add(tag1)
db.session.add(tag2)
db.session.commit()
return 'hello'
if __name__ == '__main__':
app.run(debug=True)
查看多对多数据
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
#以上导入所需模块
app = Flask(__name__) #实例化flask
app.config.from_object(config)#引入数据库配置
db = SQLAlchemy(app) #实例化sqlalchemy
#首先创建三张表
#最后创建中间表
article_tag = db.Table('article_tag',db.Column('article_id',db.Integer,db.ForeignKey('article.id'),primary_key=True), db.Column('tag_id',db.Integer,db.ForeignKey('tag.id'),primary_key=True))
#第一创建article表
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(100),nullable=False)
#两张表进行关联
tags = db.relationship('Tag',secondary =article_tag,backref = db.backref('articles') )
#第二创建标签表
class Tag(db.Model):
__tablename__ = 'tag'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(100), nullable=False) #标签名字
db.create_all()
@app.route('/')
def index():
# article1 = Article(title = 'aaa')
# article2 = Article(title = 'bbb')
#
# tag1 = Tag(name = '111')
# tag2= Tag(name = '222')
#
# #对文章添加标签
# article1 .tags.append(tag1)
# article1 .tags.append(tag2)
# article2 .tags.append(tag1)
# article2 .tags.append(tag2)
#
# db.session.add(article1)
# db.session.add(article2)
# db.session.add(tag1)
# db.session.add(tag2)
# db.session.commit()
#查看标题是aa的有哪些文章
article1 = Article.query.filter(Article.title == 'aaa').first()
tags = article1.tags
for tag in tags:
print(tag.name )
return 'hello'
if __name__ == '__main__':
app.run(debug=True)