使用Flask-SQLAlchemy创建模型与表的映射
- 模型需要继承自db.Model
- 属性必须写成 db.Column()的数据类型
- 数据类型 db.String 是varchar
- db.Text 是text
- db.Integer 是int
- db.Column()中的数据类型需要加上长度
- 其他参数有primary_key
- autoincrement
- nullable 这些参数可以设置为True OR 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)
content = db.Column(db.Text, nullable=False)
增加数据
arricle = Article(title="aaa",content="bbb")
db.session.add(arricle)
db.session.commit()
查询数据
result = Article.query.filter(Article.title=='mark').first()
print(result.content)
- query是从db.Model中继承来的
- query.filter(Article.title=’xx’)过滤条件
- first()取出查询结果的第一条数据 实际上就是一个Article对象
- .all()是查询到的所有结果 是一个Article对象数组
修改数据
- 查询到要改的数据 拿到Article对象
- 更新 article1.title=’new title’
- db.session.commit()
result = Article.query.filter(Article.title=='success').first()
old_title = result.title
result.title = 'success2018'
db.session.commit()
删除
- 查出要删除的数据 拿到Article对象
- db.session.delete(article)
- db.session.commit()
result = Article.query.filter(Article.title=='success2018').first()
db.session.delete(result)
db.session.commit()