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如何通过Flask-Mail发送电子邮件

    下面是关于Python如何通过Flask-Mail发送电子邮件的完整攻略及示例说明: 一、Flask-Mail简介 在使用 Flask 框架时,我们需要使用 Flask-Mail 扩展来发送邮件。Flask-Mail 扩展可以方便地实现邮件发送功能。 Flask-Mail 扩展是 Flask 对邮件处理库Flask-Mail 的包装器。Flask-Mail …

    Flask 2023年5月15日
    00
  • 基于go-cqhttp与Flask搭建定制机器人项目实战示例

    下面我将详细讲解“基于go-cqhttp与Flask搭建定制机器人项目实战示例”的完整攻略,这个过程中包含两条示例的说明。 简介 本攻略将介绍使用go-cqhttp和Flask两个工具搭建一个定制的QQ机器人项目。其中第一条示例将展示如何使用go-cqhttp和Flask来实现一个抢购机器人,而第二条则将介绍如何使用这两个工具来实现一个天气查询机器人。 环境…

    Flask 2023年5月16日
    00
  • Flask 让jsonify返回的json串支持中文显示的方法

    要让 Flask 中使用 jsonify 返回的 JSON串支持中文显示,需要进行如下设置: 引入 json_dumps_settings 模块,该模块可以设置序列化 JSON 数据时的一些选项。例如:ensure_ascii 参数可以指示是否对非 ASCII 字符进行转义。默认值是 True,即默认情况下会将非 ASCII 字符转义为 Unicode 对象…

    Flask 2023年5月16日
    00
  • 在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程

    下面我就为您详细讲解在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程: 准备工作 要在CentOS上配置Nginx+Gunicorn+Python+Flask环境,需要先安装一些必要的工具和依赖库。在终端输入以下命令来安装: sudo yum -y update sudo yum -y install python3-pi…

    Flask 2023年5月16日
    00
  • flask框架url与重定向操作实例详解

    下面是“flask框架url与重定向操作实例详解”完整攻略。 概述 在Web开发中,url是极其重要的一个概念,也是构建路由系统的核心所在。flask框架中,路由系统的url处理和重定向也是非常重要的,本篇文章将对flask框架url与重定向操作进行详细讲解。 flask框架url操作 路由定义 在flask中,路由就是url和对应的视图函数之间的映射,通过…

    Flask 2023年5月16日
    00
  • Python+Flask实现自定义分页的示例代码

    笔者将为你详细讲解“Python+Flask实现自定义分页的示例代码”的完整攻略。 简介 在Flask开发Web应用过程中,实现分页功能可能会涉及到数据库查询、分页计算等多种操作,本文将介绍使用Python+Flask框架实现自定义分页的示例代码并解释实现细节。 示例1:自定义分页函数 实现思路 自定义分页函数主要的目的是减少重复代码,实现通用分页逻辑,具体…

    Flask 2023年5月15日
    00
  • Flask框架路由和视图用法实例分析

    Flask框架路由和视图用法实例分析 Flask是一种使用Python编写的Web开发框架。Flask框架能够帮助我们快速构建Web应用程序。在Flask框架中,我们需要关注的一些关键概念包括路由(routing)、视图(views)、模板(templates)和表单(forms)。在本文中,我将详细介绍Flask框架中的路由和视图的用法,并提供两个完整的代…

    Flask 2023年5月16日
    00
  • Flask框架信号用法实例分析

    以下是详细讲解“Flask框架信号用法实例分析”的完整攻略,包括两个示例说明。 一、Flask框架信号 Flask框架的信号就像是事件,当一个特定的事件发生时,可以触发一个或多个函数。Flask框架内置了多个信号,例如在请求处理前后、请求处理异常等情况下,都有相应的信号被触发。 Flask框架的信号主要由以下3部分组成: 触发器:当特定情况发生时,触发器会产…

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