目录:
【Flask学习笔记:一】开发环境部署
【Flask学习笔记:二】Flask 入门基础知识
【Flask学习笔记:三】Flask 中的 request、response
【Flask学习笔记:四】Flask 应用和请求上下文
【Flask学习笔记:五】Jinja2 模板引擎
【Flask学习笔记:六】Flask 蓝图
【Flask学习笔记:七】Flask - WTF 处理表单
【Flask学习笔记:八】Flask 中的 cookie、session
【Flask学习笔记:九】Flask-SQLAlchemy
【Flask学习笔记:九】Flask-SQLAlchemy
SQLAlchemy 是一个基于 Python 实现的 ORM ( Object Relational Mapping, 对象关系映射 ) 框架。该框架建立在 DB API 上,使用关系对象映射进行数据库操作,即将类和对象转换成 SQL,然后使用数据 API 执行 SQL 并获取执行结果。其实质在于以操作对象的方式对数据库操作。
一、MySQL 的安装
参考教程: https://www.runoob.com/mysql/mysql-install.html
二、SQLAlchemy 的安装
安装 Flask-SQLAlchemy 框架可以使用下面的命令:
pip install flask-sqlalchemy
在连接数据库之前,还需要安装一个操作 MySQL 的模块 :
pip install pymysql
三、初始化配置
在 Python 3.x 下的数据库配置文件如下:
USERNAME = 'root' # 用户名
PASSWORD = '' # 登录密码
HOST = 'localhost' # 主机地址
PORT = '3306' # 端口号
DATABASE = 'demo' # 访问的数据库
# 连接 URI
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8".format(
USERNAME, PASSWORD, HOST, PORT, DATABASE
)
# 动态追踪修改设置,如未设置只会提示警告
SQLALCHEMY_TRACK_MODIFICATIONS = False
# 查询时会显示原始 SQL 语句
SQLALCHEMY_ECHO = True
建立与数据库间的连接,demo.py:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config)
# 初始化一个对象
db = SQLAlchemy(app)
# 测试数据库连接是否成功
db.create_all()
@app.route('/')
def index():
return ""
if __name__ == '__main__':
app.run(port=8080)
运行上述代码,如果没报错,则表示配置成功。
如果遇到错误1:
pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
或:
pymysql.err.InternalError: (1043, 'Bad handshake')
请参考:https://blog.csdn.net/william_munch/article/details/94327686
遇到错误2:
Unknown system variable 'tx_isolation'
更新 sqlalchemy 版本
四、创建表
SQLAlchemy 允许我们根据数据库的表结构来创建数据模型,反之亦然。所以一般无需手动的登录到数据库中使用 SQL 语句来创建表,只需把数据模型定义好了之后,表结构也就有了。
SQLAlchemy 有一些常用的数据类型,和关系数据库的类型有对应关系,详见下表:
类型说明 | Python类型 | 描述 |
---|---|---|
Integer | int | 整型,通常为 32 位,映射到数据库中是 int 类型 |
SmallInteger | int | 短整型,通常为 16 位,映射到数据库中是 int 类型 |
BigIntege |