九、Flask-SQLAlchemy数据的增删改查
2018-09-05 本文已影响55人
十柒年
1.用Flask-SQLAlchemy操作数据库
上篇文章创建好了SQLAlchemy与MySQL的映射,这篇文章就来研究下如何用SQLAlchemy来进行数据的增删改查。
1.增加
article1 = Article(title='aaa', content='bbb')
db.session.add(article1)
db.session.commit()
增加比较简单,db就是SQLAlchemy的一个对象,db里面有一个session,这个session在python里面指的是会话,不是咱们常说的session缓存,变量。先创建好一条Article的记录,添加好db.session里,然后提交就可以了。
2.查询
result = Article.query.filter(Article.title == 'aaa').first()
print(result.title)
print(result.content)
注意查询出来的结果是一个列表形式的,.first()
是指取查询出来的第一条记录,如果没有记录,返回为空。
3.修改
article1 = Article.query.filter(Article.title == 'aaa').first()
article1.title = 'new title'
db.session.commit()
想要对数据进行修改,需要先查询到该条记录,在对该条记录进行更新,然后提交。
4.删除
article1 = Article.query.filter(Article.content == 'bbb').first()
db.session.delete(article1)
db.session.commit()
删除也比较简单,查询到对应的记录,然后执行db.session.delete,添加到会话中,然后commit()提交就行了。
请看完整代码,app.py
# encoding: utf-8
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
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)
db.create_all()
@app.route('/')
def hello_world():
# 增加
# article1 = Article(title='aaa', content='bbb')
# db.session.add(article1)
# db.session.commit()
# 查询
# result = Article.query.filter(Article.title == 'aaa').first()
# article1 = result[0]
# print(article1.title)
# print(article1.content)
# 修改
# article1 = Article.query.filter(Article.title == 'aaa').first()
# article1.title = 'new title'
# db.session.commit()
# 删除
article1 = Article.query.filter(Article.content == 'bbb').first()
db.session.delete(article1)
db.session.commit()
return 'Hello World!'
if __name__ == '__main__':
app.run()
config.py
# encoding: utf-8
# dialect+driver://username:password@host:port/database
DIALECT = 'mysql' # 要用的什么数据库
DRIVER = 'pymysql' # 连接数据库驱动
USERNAME = 'root' # 用户名
PASSWORD ='root' # 密码
HOST = 'localhost' # 服务器
PORT ='3306' # 端口
DATABASE = 'db_demo2' # 数据库名
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
Study hard and make progress every day
更多学习资料请关注"爱游戏爱编程"。
爱游戏爱编程.jpg