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

yizhihongxing

下面是详细的“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 UI自动化测试Web frame及多窗口切换

    下面是针对“Python UI自动化测试Web frame及多窗口切换”的完整攻略,包含了示例说明: 1. Python UI自动化测试Web frame 对于Web frame的自动化测试,需要使用Selenium的WebDriver API。Selenium WebDriver封装了很多操作浏览器窗口和页面元素的API,可以方便地操作页面中的各种元素和完…

    Flask 2023年5月16日
    00
  • 如何部署Flask?(详解版)

    部署前准备 1.准备服务器环境(如 Ubuntu、CentOS等)。 2.安装必要的软件和库,包括 Python、pip、virtualenv、Nginx、Gunicorn等: # 安装 Python 和 pip sudo apt-get update sudo apt-get install python3-pip # 升级 pip pip install…

    Flask 2023年3月13日
    00
  • js中值引用和地址引用实例分析

    JS中的值引用和地址引用指的是,在JS中,非基本类型数据(如对象、数组等)的赋值方式存在两种:值传递和引用传递。当使用值传递时,实际上是将变量的值(即数据内容)直接复制给接收变量;而当使用引用传递时,则是将变量的地址(指针)复制给接收变量,两者指向同一块内存空间,从而共享同一份数据。这里通过两个实例来详细讲解这两种传递方式的异同点。 实例1:值传递 假设有两…

    Flask 2023年5月16日
    00
  • 使用Flask和Django中解决跨域请求问题

    跨域请求问题的解决方法主要有两种:一种是在服务端进行设置,另一种是在客户端进行设置。下面分别介绍Flask和Django中如何进行跨域请求的设置。 使用Flask中解决跨域请求问题 在Flask中,可以使用Flask-CORS(Cross-Origin Resource Sharing)扩展来解决跨域请求问题。以下是详细步骤: 安装Flask-CORS扩展 …

    Flask 2023年5月15日
    00
  • Flask 变量规则详解

    Flask 是一个轻量级的 Web 框架,其变量规则功能允许开发者创建动态 URL。这篇文章将介绍 Flask 变量规则的详细信息,帮助开发者理解如何使用 Flask 创建动态 URL。本文将涉及以下主题: 什么是变量规则? 如何使用变量规则创建动态 URL? 给变量规则添加限制条件 什么是变量规则? 在 Flask 中,变量规则指的是将 URL 中的部分作…

    Flask 2023年3月13日
    00
  • 在 Django/Flask 开发服务器上使用 HTTPS

    使用HTTPS是现代Web开发中必不可少的安全手段之一,可以加密Web应用程序和服务器之间的通信,防止敏感数据被恶意截取。在Django/Flask开发服务器上使用HTTPS,可以提高Web应用程序的安全性。下面是详细的攻略: 一、Django 1. 生成证书和密钥 使用openssl在本地主机上生成自签名ssl证书和密钥文件: $ openssl req …

    Flask 2023年5月15日
    00
  • python+flask编写接口实例详解

    下面我就详细讲解”Python+Flask编写接口实例详解”的完整攻略。 概述 Python是一种高效的编程语言,主要用于Web开发、数据分析、人工智能等领域。而Flask是Python的一个轻量级Web框架,可以用于构建Web应用和API。本文将会给出Python和Flask的使用实例,带你一步步从零开始构建一个简单的API。 环境搭建 首先,我们需要安装…

    Flask 2023年5月15日
    00
  • Flask框架WTForm表单用法示例

    接下来我将详细讲解Flask框架WTForm表单用法示例的完整攻略。 简介 在Flask web应用程序中,表单是收集用户数据的标准方式。为了使表单处理更加方便和安全,WTForms库提供了许多功能和检查方法。本攻略将演示如何使用Flask和WTForms创建表单,以及如何在视图函数中处理表单数据。 示例一:创建简单的表单 在这个示例中,我们将使用WTFor…

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