flask + pymysql操作Mysql数据库的实例

yizhihongxing

下面是使用 Flask 和 PyMySQL 操作 MySQL 数据库的完整攻略,包含两条示例说明。

安装 PyMySQL

使用 PyMySQL 操作 MySQL 数据库需要先安装 PyMySQL 库,可以通过以下命令在命令行中安装:

pip install pymysql

创建 Flask 应用

首先,需要创建一个 Flask 应用。可以通过以下代码创建一个最基本的 Flask 应用。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

运行该应用,可以在本地测试服务器上看到一个简单的文字“Hello, World!”。

if __name__ == '__main__':
    app.run()

连接 MySQL 数据库

在 Flask 应用中连接 MySQL 数据库,需要先设置好数据库连接信息。可以在应用配置文件中定义这些信息。

app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'mydb'

连接 MySQL 数据库可以通过 PyMySQL 库实现。

import pymysql

@app.before_request
def before_request():
    g.db = pymysql.connect(
        host=app.config['MYSQL_HOST'], 
        user=app.config['MYSQL_USER'], 
        password=app.config['MYSQL_PASSWORD'], 
        db=app.config['MYSQL_DB'],
        cursorclass=pymysql.cursors.DictCursor)

在每个请求被处理之前,before_request 函数会被调用,连接到 MySQL 数据库,并将数据库对象保存在 Flask 应用实例的全局 g 对象中。

注意,在连接 MySQL 数据库时,需要指定 cursorclass 为 DictCursor,这样可以返回的查询结果为 Python 字典类型,更易读取。

在请求处理完成之后,需要关闭数据库连接,可以通过以下代码实现。

@app.teardown_request
def teardown_request(exception):
    db = getattr(g, 'db', None)
    if db is not None:
        db.close()

示例一:插入数据

以下是一个使用 Flask 和 PyMySQL 插入数据到 MySQL 数据库的示例。

@app.route('/add', methods=['POST'])
def add_data():
    if request.method == 'POST':
        name = request.form['name']
        age = request.form['age']
        try:
            cursor = g.db.cursor()
            sql = "INSERT INTO `users` (`name`, `age`) VALUES (%s, %s)"
            cursor.execute(sql, (name, age))
            g.db.commit()
            return 'Data inserted successfully!'
        except Exception as e:
            print(e)
            g.db.rollback()
            return 'Error occurred while inserting data.'

插入数据时,首先获取表单中提交的数据,然后执行 SQL 语句,插入到 MySQL 数据库中。

示例二:查询数据

以下是一个使用 Flask 和 PyMySQL 查询数据从 MySQL 数据库中的示例。

@app.route('/list')
def list_data():
    try:
        cursor = g.db.cursor()
        cursor.execute("SELECT * FROM `users`")
        results = cursor.fetchall()
        return render_template('list.html', results=results)
    except Exception as e:
        print(e)
        return 'Error occurred while fetching data.'

查询数据时,执行 SELECT 语句,获取所有数据,将查询结果传递到 HTML 模板中渲染展示。

总结

通过上述两个示例,我们学习了使用 Flask 和 PyMySQL 操作 MySQL 数据库的基本操作,包括配置和连接数据库、插入数据、查询数据。这些操作可以进一步扩展获取、更新和删除等功能的开发。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flask + pymysql操作Mysql数据库的实例 - Python技术站

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

相关文章

  • Python-Flask:动态创建表的示例详解

    下面是详细的攻略: 标题:Python-Flask:动态创建表的示例详解 1. 示例一: 在Flask Web框架中,可以通过SQLAlchemy库来实现动态创建数据库表的功能。首先需要导入SQLAlchemy库,并配置数据库连接参数,例如: from flask_sqlalchemy import SQLAlchemy app = Flask(__name…

    Flask 2023年5月15日
    00
  • Ubuntu下Python+Flask分分钟搭建自己的服务器教程

    下面是 “Ubuntu下Python+Flask分分钟搭建自己的服务器教程” 的完整攻略。 1. 安装Python和Flask库 在 Ubuntu 系统中,Python 已经默认预装。我们只需要安装 Flask 库即可。 sudo apt-get update sudo apt-get install python-pip sudo pip install …

    Flask 2023年5月15日
    00
  • Python中turtle库常用代码汇总

    让我分步骤地介绍一下“Python中turtle库常用代码汇总”的完整攻略: 1. turtle库概述 turtle库是Python语言内置的绘图库,可以让我们使用海龟的方式来绘制图形,如线条、图案、形状等。turtle库在Python 3中默认安装,无需额外安装。下面是turtle库的使用方法: import turtle 2. 常用命令 turtle库中…

    Flask 2023年5月15日
    00
  • Python脚本实现格式化css文件

    当我们编写较大的CSS文件时,往往会出现文件结构不清晰、代码难以维护等问题,而格式化CSS文件可以使代码更易读、易维护。本文将介绍如何使用Python脚本来格式化CSS文件。 步骤1:安装cssutils库 CSS文件格式化需要使用到cssutils库,可以通过pip install cssutils来进行安装。如果你的Python环境没有安装pip,那么需…

    Flask 2023年5月16日
    00
  • vue+flask实现视频合成功能(拖拽上传)

    下面是详细讲解“vue+flask实现视频合成功能(拖拽上传)”的完整攻略。 总体思路 这个项目的目的是实现用户可以通过拖拽上传多个视频文件,并将这些视频文件拼接成一个新的视频文件自定义保存,同时该视频文件可以在前端进行预览播放。 具体的实现方案是:前端使用vue框架构建视图,并使用dropzone.js插件实现文件的拖拽上传;后端使用flask框架运行py…

    Flask 2023年5月16日
    00
  • Python Flask框架开发之运用SocketIO实现WebSSH方法详解

    本文重点介绍如何使用Python Flask框架运用SocketIO实现WebSSH,来远程连接Linux服务器。首先要明白的是,SSH是一种网络协议,用于安全地远程登录和执行命令。因此,我们要实现WebSSH,就需要使用SocketIO在Web浏览器中创建一个SSH客户端。 整个实现过程可以分为以下几个步骤: 搭建Python Flask Web框架 安装…

    Flask 2023年5月15日
    00
  • Flask模板渲染与Get和Post请求详细介绍

    我来为您讲解 “Flask模板渲染与Get和Post请求详细介绍” 的攻略。 Flask模板渲染 在 Flask 中,可以使用 Jinja2 模板引擎渲染模板。 创建模板 首先,我们需要在项目文件夹下创建一个 templates 文件夹,并创建一个 HTML 模板文件。 例如,创建一个名为 index.html 的模板文件: <!doctype htm…

    Flask 2023年5月15日
    00
  • python中Flask Web 表单的使用方法介绍

    下面是 Python 中 Flask Web 表单的使用方法介绍: Flask Web 表单 Flask Web 表单(Flask Web Forms)是 Flask 框架的一个扩展,它提供了简单易用的 API 来处理 Web 表单。使用 Flask Web 表单,可以轻松地编写处理用户表单的代码并实现表单验证。 安装 Flask Web 表单 安装 Fla…

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