mysql

注意下面的操作都要现在任务管理器-服务中打开MySQL80

我们可以像下面这样查看数据库存储的位置
image

image
文档中说的“MySQL客户端”指的是
image
image
用户写root,密码写自己安装MySQL的代码,数据库写之前用命令create database dname创建的数据库的名字(即dname)。上面的操作其实就是建立一个从IDE到本地仓库的连接。
然后就可以在框里面写命令了,如下
image
在IDE里面写命令就等价于在命令行中写命令,只不过IDE里面有更多功能
.py文件中可以写Python 操作数据库的代码。以语雀文档中的代码为例。语雀文档当中的代码有些错误,正确的见下

from flask import Flask, Response
from flask import request
import mysql.connector
from flask import jsonify
import mysql.connector

# Create a Flask application instance
app = Flask(__name__)

#################################################################
# Python操作数据库(使用原生SQL)
# 查询
@app.get('/database/raw')
def database_raw_query():
    # 创建数据库连接   
    conn = mysql.connector.connect(user='root', password='...', host='127.0.0.1', database='jrrg')
    # password换成安装MySQL的密码,database换成数据库的名称就好了
    # 创建游标
    cursor = conn.cursor()
    # 执行SQL查询
    sql_str = 'SELECT username, password, nickname, phone FROM user;'
    cursor.execute(sql_str)
    # 获取查询结果
    raws = cursor.fetchall()
    # 遍历查询结果并处理
    l = []
    for username, password, nickname, phone in raws:
        l.append({'username': username, 'nickname': nickname, 'phone': phone})
    # 关闭游标和连接
    print(l)
    cursor.close()
    conn.close()
    return jsonify(l)

# 新增
@app.post('/database/raw')
def database_raw_insert():
    # 创建数据库连接
    conn = mysql.connector.connect(user='root', password='...', host='127.0.0.1', database='jrrg')
    # 创建游标
    cursor = conn.cursor()
    # 执行SQL查询
    cursor.execute('INSERT INTO user(username, password, nickname, phone) VALUES(%s,%s,%s,%s)', ('root', '123456', 'jerry', '16666666666'))
    conn.commit() # 对于INSERT、UPDATE、DELETE都需要通过commit来提交,否则修改不成功
    cursor.close()
    conn.close()
    return '<h1>Database inserted!</h1>'

@app.put('/database/raw')
def database_raw_update():
    # 创建数据库连接
    conn = mysql.connector.connect(user='root', password='...', host='127.0.0.1', database='jrrg')
    # 创建游标
    cursor = conn.cursor()
    # 执行SQL查询
    cursor.execute('UPDATE user set password=%s where username=%s', ('root', 'root'))
    conn.commit() # 对于INSERT、UPDATE、DELETE都需要通过commit来提交,否则修改不成功
    cursor.close()
    conn.close()
    return '<h1>Database updated!</h1>'

@app.delete('/database/raw')
def database_raw_delete():
    # 创建数据库连接
    conn = mysql.connector.connect(user='root', password='...', host='127.0.0.1', database='jrrg')
    # 创建游标
    cursor = conn.cursor()
    # 执行SQL查询
    cursor.execute('DELETE FROM user where username=%s', ('root',))
    conn.commit() # 对于INSERT、UPDATE、DELETE都需要通过commit来提交,否则修改不成功
    cursor.close()
    conn.close()
    return '<h1>Database deleted!</h1>'

把上面的代码放到VScode里面,打开终端进行运行即可。
注意在运行上面的代码之前,我们必须要先创建数据库jrrg和表user,如下
image
运行之后我们打开APIfox进行之前flask的操作即可。这就会对我们选择的数据库进行操作(显然就是本地的数据库,也会被修改的)
Q&A

  • 在VScode的终端中直接输入flask run为什么报错?
    flask run默认运行的文件是app.py,现在我们的文件名不是这个,要使用下面的命令:flask --app Python编写数据库指令.py run
  • 为什么使用了flask --app Python编写数据库指令.py run报错没有模块mysql
    我们的模块mysql安装到环境jrrg中,但是有可能我们VScode或者终端中使用的Python解释器不是jrrg,这个时候就要切换。
    VScode的解释器见下
    image
    终端的解释器见下image
    切换终端的解释器使用命令conda activate jrrg即可
posted @ 2025-03-14 12:01  最爱丁珰  阅读(13)  评论(0)    收藏  举报