flask 框架操作MySQL数据库简单示例

下面是详细的“flask 框架操作MySQL数据库简单示例”教程:

1. 准备工作

在开始之前,你需要先安装好Python和MySQL,同时安装好以下两个Python库:
- Flask:一个基于 Python 的轻量级 Web 应用框架
- Flask-MySQLdb:一个用于在 Flask 应用中连接和操作 MySQL 数据库的库

以macOS系统为例,可以在终端输入以下命令分别安装 Flask 和 Flask-MySQLdb:

pip install flask
pip install flask-mysqldb

2.示例 1:查询数据

2.1 初始化 Flask 应用

首先,需要在 Python 文件中导入 Flask 库和 flask-mysqldb 库,并初始化 Flask 应用:

from flask import Flask, jsonify, request
from flask_mysqldb import MySQL

app = Flask(__name__)
mysql = MySQL(app)

其中,app 变量是一个 Flask 对象,mysql 变量是一个 Flask-MySQLdb 对象。我们需要在 Flask 应用创建后将数据库连接信息设置到 Flask-MySQLdb 对象中:

app.config['MYSQL_HOST'] = 'localhost'  # 数据库地址
app.config['MYSQL_USER'] = 'root'       # 数据库用户名
app.config['MYSQL_PASSWORD'] = '123456' # 数据库密码
app.config['MYSQL_DB'] = 'test'         # 数据库名

mysql.init_app(app)  # 初始化 MySQL

这样,mysql 对象就可以连接到我们的 MySQL 数据库了。

2.2 编写查询代码

下面,让我们编写一个查询指定数据表的所有数据的路由,并将查询结果返回给客户端。首先,需要设置一个路由地址,让客户端可以请求并访问该路由:

@app.route('/api/get-data', methods=['GET'])
def get_data():
    cursor = mysql.connection.cursor()
    cursor.execute("SELECT * FROM mytable")
    rows = cursor.fetchall()
    cursor.close()

    return jsonify({'data': rows})
  • @app.route 是 Python 装饰器,用于设置 Flask 应用的路由地址
  • methods=['GET'] 表示这个路由仅能使用 GET 方法访问
  • mysql.connection.cursor() 创建一个数据库游标对象,用于查询数据
  • cursor.execute("SELECT * FROM mytable") 使用游标执行 SQL 查询操作
  • cursor.fetchall() 获取查询结果中所有的数据行
  • cursor.close() 关闭游标连接
  • jsonify({'data': rows}) 将查询结果转化为 JSON 格式并返回给客户端

这个路由的作用是从 MySQL 数据库中查询 mytable 数据表的所有数据,并将查询结果返回给客户端。

2.3 启动 Flask 应用

以上代码编写完成后,将程序保存为 app.py 文件,然后在终端中输入以下命令启动 Flask 应用:

python app.py

在浏览器中输入 http://localhost:5000/api/get-data,即可看到查询结果。

3. 示例 2:插入数据

3.1 编写插入代码

下面,让我们编写一个将数据插入到指定数据表的路由,并将插入结果返回给客户端。首先,需要设置一个路由地址,让客户端可以请求并访问该路由:

@app.route('/api/add-data', methods=['POST'])
def add_data():
    data = request.get_json()
    name = data['name']
    age = data['age']
    cursor = mysql.connection.cursor()
    cursor.execute(f"INSERT INTO mytable (name, age) VALUES ('{name}', {age})")
    mysql.connection.commit()
    cursor.close()

    return jsonify({'status': 'success'})
  • request.get_json() 用于从 POST 请求的表单数据中获取 JSON 数据
  • mysql.connection.cursor() 创建一个数据库游标对象,用于插入数据
  • cursor.execute(f"INSERT INTO mytable (name, age) VALUES ('{name}', {age})") 使用游标执行 SQL 插入操作
  • mysql.connection.commit() 提交插入操作的结果
  • cursor.close() 关闭游标连接
  • jsonify({'status': 'success'}) 将插入结果转化为 JSON 格式并返回给客户端

这个路由的作用是将客户端 POST 请求发送的数据插入到 MySQL 数据库的 mytable 数据表中,并将插入结果返回给客户端。

3.2 测试插入数据

在浏览器中输入以下地址:

http://localhost:5000/api/add-data

在 Postman 或其他 RESTful 客户端中发送一个 POST 请求,请求地址同上,并在 Body 中设置 JSON 数据,如:

{
    "name": "张三",
    "age": 20
}

发送请求后,如果插入操作成功,则返回:

{
    "status": "success"
}

4. 总结

到此为止,我们已经使用 Flask 和 Flask-MySQLdb 完成了对 MySQL 数据库的查询和插入操作。在实际的项目开发中,我们可以根据需要进行扩展和优化,例如加入用户认证、错误处理等功能,以提高项目的可用性和稳定性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flask 框架操作MySQL数据库简单示例 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 如何将python代码生成API接口

    下面是详细的“如何将python代码生成API接口”的完整攻略: 1. 安装Flask 首先,我们需要安装一个轻量级的Python web框架 Flask,它可以帮我们快速构建一个 RESTful API。安装命令如下: pip install Flask 2. 编写Python代码 在安装好 Flask 后,我们需要编写 Python 代码,将其转化为网络…

    Flask 2023年5月16日
    00
  • 用sqlalchemy构建Django连接池的实例

    首先,需要明确一点,sqlalchemy是Python中最流行的ORM(对象关系映射器)之一,而Django最常用的ORM是自带的ORM。虽然可以通过某些方式让Django使用sqlalchemy,但是在大部分情况下直接使用Django自带的ORM是更好的选择。所以,以下将介绍如何使用Django自带的ORM来构建连接池。 安装数据库连接池 在Python中…

    Flask 2023年5月16日
    00
  • Flask-WTF表单的使用方法

    Flask-WTF是一个在Flask中使用表单的第三方扩展程序,它可以帮助我们在Flask中方便地处理表单数据并进行验证,避免了手动处理表单数据的繁琐过程。下面是Flask-WTF表单的使用方法: 安装Flask和Flask-WTF 首先安装需要的扩展程序,可以通过pip安装: pip install Flask pip install Flask-WTF …

    Flask 2023年5月15日
    00
  • 一个基于flask的web应用诞生 flask和mysql相连(4)

    下面来详细讲解“一个基于flask的web应用诞生 flask和mysql相连(4)”的完整攻略,并且包含两条示例说明。 标题 一、前言 在建立web应用的时候,数据的处理是非常重要的一项任务,而flask本身只是一个web应用框架,并不具备直接处理关系型数据库的能力,需要借助mysql等数据库来进行数据的存取操作。而本篇攻略将讲解如何基于flask框架来实…

    Flask 2023年5月15日
    00
  • flask-socketio实现前后端实时通信的功能的示例

    下面是使用flask-socketio实现前后端实时通信的完整攻略,包含两个示例说明: 环境安装 安装Python和pip 使用pip安装Flask和Flask-SocketIO,命令为: pip install flask flask-socketio 安装前端JavaScript库socket.io,可以通过以下命令,在项目根目录下建立一个新的stati…

    Flask 2023年5月16日
    00
  • python和flask中返回JSON数据的方法

    当Python和Flask用于Web开发时,经常需要返回JSON数据。这是因为现代Web应用程序经常使用JSON(JavaScript Object Notation)作为通信协议。下面是一些关于如何返回JSON数据的方法: 导入Flask和JSON模块 在使用Flask时,要记得导入flask和json模块。在你的Python脚本中,你可以这样做: fro…

    Flask 2023年5月15日
    00
  • python miniWeb框架搭建过程详解

    当我们要搭建自己的网站,动态web框架是不可或缺的。Python是一种非常流行的编程语言,它拥有丰富的web框架,比如Flask、Django等。而如果我们想要更深入了解web框架的原理,也可以尝试手动搭建一个miniWeb框架。下面,我们将分为以下几个步骤,详细讲解Python miniWeb框架的搭建过程: 搭建服务器 首先,我们需要一个能够运行Pyth…

    Flask 2023年5月16日
    00
  • Linux中使用top命令的技巧

    下面是“Linux中使用top命令的技巧”的完整攻略。 一、什么是top命令 top命令是一款常用的系统监控工具,可以实时查看系统的资源占用情况,包括进程占用的CPU、内存等。 二、top命令的参数和用法 top命令的常用参数如下: -d:指定刷新时间,默认为3秒; -p:指定监控的进程PID; -u:指定监控的用户; -H:显示进程的线程; -i:不显示I…

    Flask 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部