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安装和命令详解

    下面是Python Flask安装和命令详解的完整攻略。 Python Flask安装和命令详解 安装Python Flask 安装Python Flask很简单,只需要使用pip工具即可。以下是安装Python Flask的命令: pip install Flask 安装完成后可以通过以下命令检查是否安装成功: import flask print(fla…

    Flask 2023年5月15日
    00
  • 如何使用Flask-Migrate拓展数据库表结构

    使用Flask-Migrate拓展数据库表结构的步骤如下: 安装Flask-Migrate 在终端或命令行输入以下命令:pip install Flask-Migrate 配置Flask-Migrate 在Flask应用程序中,导入Flask-Migrate扩展并初始化它。使用以下代码创建一个migrate对象: “`python from flask_m…

    Flask 2023年5月16日
    00
  • Python Flask框架模块安装级使用介绍

    Python Flask是一个轻量级的Web应用框架,它基于Werkzeug和Jinja2库构建。 在使用Flask之前,我们需要使用pip工具安装Flask模块。打开命令行窗口,输入以下命令安装Flask模块: pip install flask 安装完毕后,我们可以创建一个Python文件,通过import语句来导入Flask模块,如下所示: from …

    Flask 2023年5月15日
    00
  • Flask 请求钩子的实现

    在Flask应用程序中,请求钩子是一种机制,它允许您在请求到达您的视图函数之前或之后执行一些操作。这对于需要在请求到达或离开视图函数时进行一些特殊处理的情况非常有用。 Flask提供了四个请求钩子,分别是before_request、before_first_request、after_request和teardown_request。 before_req…

    Flask 2023年5月15日
    00
  • Flask接口如何返回JSON格式数据自动解析

    当Flask使用JSON格式返回数据时,可自动将JSON转换为Python对象,以便于后续操作。下面是详细的攻略过程: Flask如何返回JSON格式数据 在Flask中使用jsonify函数来返回JSON格式的数据对象,如下所示: from flask import jsonify @app.route(‘/api/data’, methods=[‘POS…

    Flask 2023年5月16日
    00
  • python项目打包成exe和安装包的方法步骤

    当你完成了一个Python项目,你可能会想将其转化为一个可执行文件(Executable)或者安装包文件(Installer)来进行分发,本文将详细介绍如何将Python项目打包为exe或者安装包。下面是两条示例步骤。 一、将Python项目打包为exe 步骤1:安装 PyInstaller 打包 Python 项目需要用到一个第三方库 PyInstalle…

    Flask 2023年5月16日
    00
  • Flask实现异步非阻塞请求功能实例解析

    《Flask实现异步非阻塞请求功能实例解析》教程可以分为以下几个部分: 1. 简单介绍异步和非阻塞概念 在这个部分,我们会对异步编程与非阻塞编程进行概念的简单介绍,包括它们的异同点以及其在网络编程中的运用。 2. Flask框架基础 本文中我们使用 Flask 框架实现异步编程和非阻塞编程的功能。在这一部分,我们将会介绍 Flask 的相关概念、基本使用方式…

    Flask 2023年5月15日
    00
  • flask框架配置mysql数据库操作详解

    下面是 “flask框架配置mysql数据库操作详解” 的完整攻略,其中包含两条示例说明。 1. 安装mysql-connector-python 要在 Flask 中使用 MySQL 数据库,需要安装 mysql-connector-python,可以使用 pip 来安装: pip install mysql-connector-python 2. 初始化…

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