【Flask学习笔记:九】Flask-SQLAlchemy

目录:
  【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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值