番外篇之Flask连接MySQL数据库
2018-09-03 本文已影响684人
十柒年
1、前言
这几天连续好几天没更新了,不是因为懒,而是在学习Python的过程中遇到好多问题,上篇文章装好了mysql,版本8.0.12数据库,也安装好了SQl_Alchemy,就等着建立模型和数据库进行交互了,就在这时遇到了问题,安装好的mysql只能通过命令还控制,虽说简单的增删改查命令也会写,但是从觉得少的什么,没错,少一个可视化工具来看的数据库以及里面的数据,以前见过一块数据库管理工具Navicat,所以决定用它了。
2、安装Navicat连接MySQL
下载地址就不说了,官网是https://www.navicat.com.cn/
网上资源挺多的,安装过程也很简单,不在赘述,安装好之后就要了连接mysql了,如下图。
![](https://img.haomeiwen.com/i6375263/6de14cd0c04a55bf.png)
点击确定,嗯报错了。报下面的错误。
![](https://img.haomeiwen.com/i6375263/65480a457d9ea2d5.png)
刚开始遇到这个问题,真的是一头雾水,然后去百度搜,中间的艰辛就不说了,给大家说下解决方案,之所以会出现这个问题mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 所以解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 代码如下。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
这个成功之后,在用Navicat连接应该就可以成功了。
![](https://img.haomeiwen.com/i6375263/e30d7c3787289a8e.png)
请忽略创建好的db_demo1数据库。重新执行下sql语句。
create database db_demo2;
create TABLE person(id int,name VARCHAR(8));
insert into person(id,name) VALUES (1,"张三")
创建数据,创建表,以及插入数据。
3、flask连接数据库并取值。
打开pycharm,新建一个项目,代码如下。需要先导出一个pymysql的包。
from flask import Flask
import pymysql
app = Flask(__name__)
# 连接mysql字符串
db = pymysql.connect("localhost", "root", "root", "db_demo2")
# 新建游标
cursor = db.cursor()
# 执行sql语句
cursor.execute("select * from person")
data = cursor.fetchone()
print(data)
@app.route('/')
def index():
return 'index'
if __name__ == '__main__':
app.run(debug=True)
主要步骤就是建立数据库连接,定义游标,执行sql语句,输出结果。
来看下print的输出结果。
![](https://img.haomeiwen.com/i6375263/99a929427714c211.png)
已经查询出结果了,至此,flask连接mysql已经讲完了,另外求助小伙伴一个问题,如何在pycharm里面吧debug模式打开,我在
app.run()
中写了debug=True,但是没用,有知道的小伙伴欢迎留言哈。如何在pycharm里面吧debug模式打开问题已解决 详情请看 https://www.jianshu.com/p/473fa42fff18
Study hard and make progress every day.
更多学习资料请关注"爱游戏爱编程"。
爱游戏爱编程.jpg