flask操作数据库Mysql 先自行安装好mysql。Flask想要操作数据库,必须要先安装python操作 Mysql 的驱动。在Python中,目前有以下MySQL驱动包。 MySQL-python:也就是MySQLdb。是对C语言操
先自行安装好mysql。Flask想要操作数据库,必须要先安装python操作 Mysql 的驱动。在Python中,目前有以下MySQL驱动包。
为了减少出错,提高学习效率,我先选择用pymysql作为驱动程序。在完成本次项目后,如果有需要,可以自行考虑移植到mysqlclient。pymysql是一个第三方包,因此需要通过以下命令安装。
pip install pymysql
后面我们使用flask操作数据库,将会使用ORM的方式。
ORM技术的好处?基本上不需要我们自己去写任何的sql语句。
如何实现?借助另外一个包:flask-sqlalchemy
sqlalchemy可以提供ORM技术,可以帮助我们像操作普通Python对象一样实现数据库的增删改查。flask-sqlalchemy是对sqlalchemy的一个封装,使得在flask中使用sqlalchemy更加方便。flask-sqlalchemy需要单独安装,因为flask-sqlalchemy依赖aqlalchemy,所以只要安装了flask-sqlalchemy,sqlalchemy就会自动安装。
安装flask-sqlalchemy:
pip install flask-sqlalchemy
新建一个flask项目,在app.py(入口文件)中编写:
模块flask_sqlalchemy中封装了模块SQLAlchemy的相关用法,我们需要先导入模块SQLAlchemy。
from flask_sqlalchemy import SQLAlchemy
为了使用类SQLAlchemy封装的功能,我们需要创建一个类SQLAlchemy的实例对象,将它命名为db,将flask的实例对象app作为参数传给SQLAlchemy,是为了将db和app联系起来,这样就能调用相关功能了。
db = SQLAlchemy(app)
在app.config中设置好连接数据库的信息,db对象可以自动读取app.config中连接数据库的信息。注意编辑配置信息时区分大小写。
# MySQL所在主机名HOSTNAME = "127.0.0.1"# MySQL监听的端口号,默认3306PORT = 3306# 连接MySQL的用户名,自己设置USERNAME = "root"# 连接MySQL的密码,自己设置PASSWord = "root"# MySQL上创建的数据库名称DATABASE = "database_learn"# 通过修改以下代码来操作不同的SQL比写原生SQL简单很多 --》通过ORM可以实现从底层更改使用的SQLapp.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"
文件 -->新建连接-->MySQL
填写信息-->连接测试-->确定
新建数据库
with app.app_context(): with db.engine.connect() as conn: rs = conn.execute("select 1") print(rs.fetchone())
返回 (1,),证明连接成功。
完整测试代码如下(navicat信息需要自己先配置好再通过flask去连接):
from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)HOSTNAME = "127.0.0.1"PORT = 3306USERNAME = "root"PASSWORD = "root"DATABASE = "database_learn"app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"db = SQLAlchemy(app)# 测试是否连接成功with app.app_context(): with db.engine.connect() as conn: rs = conn.execute("select 1") print(rs.fetchone()) # (1,)if __name__ == '__main__': app.run()
来源地址:https://blog.csdn.net/hold_on_qlc/article/details/128184960
--结束END--
本文标题: 【Flask&MySQL】Flask连接数据库MySQL(十)
本文链接: https://lsjlt.com/news/391089.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0