Flask操作数据库MySQL

先自行安装好MySQL。Flask想要操作数据库,必须要先安装Python操作 MySQL 的驱动。在Python中,目前有以下MySQL驱动包

  • MySQL-python:也就是MySQLdb。是对C语言操作 MySQL数据库的一个简单封装。遵循了Python-DB-API v2。但是只支持Python2。
  • mysqlclient:是 MySQL-python的另外一个分支。支持Python3并且修复了一些bug。是目前为止执行效率最高的驱动,但是安装的时候容易因为环境问题出错。
  • pymysql:纯 Python实现的一个驱动。因为是纯 Python编写的,因此执行效率不如 mysqlclient。也正因为是纯 Python写的,因此可以和 Python代码无缝衔接。
  • mysql-connector-python: MySQL官方推出的纯 Python连接MySQL的驱动,执行效率pymysql还慢。

为了减少出错,提高学习效率,我先选择用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连接MySQL

新建一个flask项目,在app.py(入口文件)中编写:

一、创建SQLAlchemy的实例对象

模块flask_sqlalchemy中封装了模块SQLAlchemy的相关用法,我们需要先导入模块SQLAlchemy。

from flask_sqlalchemy import SQLAlchemy

为了使用类SQLAlchemy封装的功能,我们需要创建一个类SQLAlchemy的实例对象,将它命名为db,将flask的实例对象app作为参数传给SQLAlchemy,是为了将db和app联系起来,这样就能调用相关功能了。

db = SQLAlchemy(app)

二、在python中配置数据库信息

在app.config中设置好连接数据库的信息,db对象可以自动读取app.config中连接数据库的信息。注意编辑配置信息时区分大小写。

# MySQL所在主机名
HOSTNAME = "127.0.0.1"
# MySQL监听的端口号,默认3306
PORT = 3306
# 连接MySQL的用户名,自己设置
USERNAME = "root"
# 连接MySQL的密码,自己设置
PASSWORD = "root"
# MySQL上创建的数据库名称
DATABASE = "database_learn"
# 通过修改以下代码来操作不同的SQL比写原生SQL简单很多 --》通过ORM可以实现从底层更改使用的SQL
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"

三、利用数据库开发工具Navicat连接MySQL

1、文件 -->新建连接-->MySQL

2、填写信息-->连接测试-->确定

3、新建数据库

 四、测试连接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 Flask
from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)HOSTNAME = "127.0.0.1"
PORT = 3306
USERNAME = "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()

【FlaskMySQL】Flask连接数据库MySQL(十)相关推荐

  1. eclipse连接mysql_专题一、flask构建mysql数据库正确姿势

    每周壹总结,一起共同充电第121篇 应用程序最核心的就是数据,每天我们写程序其实也是在处理数据的过程,那么很有必要系统性的讲讲和梳理python的flask框架是如何进行数据交互操作的. 趁这3天假期 ...

  2. flask连接数据库——flask-SQLALchemy

    SQLALchemy介绍: 具体详情:flask连接数据库 具体详情2 sqlalchemy是数据库的orm框架,让我们操作数据库的时候不要再用sql语句了,跟直接操作模型一样. 请求钩子: 在请求开 ...

  3. python解压版怎么安装不了_python 连接数据库mysql解压版安装配置及遇到问题

    引言 今天学习python连接数据库,就想安装一下mysql数据库,没想到小小的数据库也遇到了不少挫折,所以我就把自己的安装过程以及问题写出来分享给大家. mysql下载链接:https://u205 ...

  4. flask 连接数据库

    FLASK 连接mysql 数据库 1 # -*- encoding: utf-8 -*-2 3 from flask import Flask4 #导入第三方连接库5 from flask_sqla ...

  5. flask 操作mysql的两种方式-sqlalchemy操作

    flask 操作mysql的两种方式-sqlalchemy操作二.ORM sqlalchemy操作#coding=utf-8 # model.pyfrom app import dbclass Use ...

  6. mysql入门优化_MySQL数据库:MySQL十大优化技巧详解

    本文主要向大家介绍了MySQL数据库的MySQL十大优化技巧详解,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. WEB开发者不光要解决程序的效率问题,对数据库的快速访问和相应也是 ...

  7. web mysql数据库的持久连接_JavaWeb连接数据库MySQL的操作技巧

    数据库是编程中重要的一部分,它囊括了数据操作,数据持久化等各方面.在每一门编程语言中都占有相当大的比例. 本次,我以MySQL为例,使用MVC编程思想(请参阅我之前的博客).简单演示一下JavaWeb ...

  8. Eclipse : java连接数据库MySQL超详细步骤

    Eclipse:java连接数据库MySQL 首先我们需要下载连接数据库所需要的桥JDBC.然后将其导入到项目中,其次编写连接数据库类. 下载MySQL JDBC 打开MySQL JDBC下载地址,然 ...

  9. jira 连接 mysql_JIRA使用教程:连接数据库—MySQL

    本文主要介绍如何连接JIRA到mysql数据库. 首先 查看MySQL的版本是否支持,查阅 支持的平台 . 如果是转移JIRA到另一台服务器,先导出数据为XML备份,然后将旧数据库中的数据传输到新的数 ...

最新文章

  1. [导入]使用RDLC报表(二)--使用自定义数据集
  2. 《众妙之门——Web用户体验设计与可用性测试》一第2章 在网页设计中通过测量数据优化情感投入2.1 情感应答和行为应答的关系...
  3. 不做旁观者,给博主最有力的支持——博客之星评选,期待您的支持,谢谢路过的朋友投上您宝贵的一票...
  4. 分布式数据库技术基础:数据分片介绍
  5. IDA python 脚本编程使用参考资料链接
  6. 如何安全地创建嵌套目录?
  7. 计算机控制液压同步顶升系统,PLC多点控制液压同步顶升系统的运用
  8. word操作 mathtype插入公式 表格
  9. matlab 输入Angstrom (埃,埃米,Angstrom 或ANG或Å)
  10. 程序员工资到底有多高?国内哪个城市挣得最多?有没有你在的城市
  11. SpringBoot简单实现上传图片到七牛云
  12. 双耳节拍 枕头_枕头的故事
  13. linux 跨网段ping,Linux中跨网段ping问题
  14. mysql5717开发设置怎么调回来_mysql5.7.17安装配置图文教程
  15. 第1讲:暴力破解--利用计算机执行速度
  16. java 打印 日历 详细 注解_Java类库 LocalDate类的简单使用(一)之打印本月的日历...
  17. 7_使用OGR模块操作矢量数据
  18. Arduino灰度传感器PID巡线
  19. MySQL中的 utf8 并不是真正的UTF-8编码 ! !
  20. 行业分析:是什么,为什么要做,怎么做好

热门文章

  1. Conda各平台安装配置和使用Python环境(保姆级教程)
  2. 小酌重构系列[21]——避免双重否定
  3. Mac 安装natapp
  4. 【 FPGA 】超声波测距小实验(四):数码管显示测距结果
  5. Spark中组件Mllib的学习16之分布式行矩阵的四种形式
  6. MuiPlayer - 一款优秀的 H5 视频播放器框架
  7. 关于大家下载我的上传资源问题
  8. 蒙氏计算机教育目的,蒙氏五大领域的内容及目的
  9. 2023中国矿业大学计算机考研信息汇总
  10. Exchange问题处理:Exchange server OAB 脱机地址簿下载失败常见解决方法