Flask集成PyMySQL的基础教程
Flask是一个轻量级的Python Web框架,它非常适合快速开发Web应用程序。在构建这些应用时,通常需要与数据库进行交互。PyMySQL是一个使用纯Python编写的MySQL客户端,可以与Flask无缝集成,使得数据的存取变得简单高效。
基础环境搭建
在开始之前,请确保您已安装以下内容:
- Python 3.x
- Flask
- PyMySQL
您可以通过以下命令安装Flask和PyMySQL:
pip install Flask PyMySQL
项目结构
首先,我们需要创建一个Flask项目的基本结构:
/flask_app
├── app.py
└── config.py
配置数据库连接
在config.py
中,您可以配置数据库连接信息:
# config.py
class Config:
MYSQL_HOST = 'localhost'
MYSQL_USER = 'your_username'
MYSQL_PASSWORD = 'your_password'
MYSQL_DB = 'your_database'
创建Flask应用
在app.py
中,我们将创建Flask应用,并集成PyMySQL进行数据操作:
# app.py
from flask import Flask, request, jsonify
import pymysql
from config import Config
app = Flask(__name__)
app.config.from_object(Config)
# 数据库连接
def get_db_connection():
connection = pymysql.connect(
host=app.config['MYSQL_HOST'],
user=app.config['MYSQL_USER'],
password=app.config['MYSQL_PASSWORD'],
database=app.config['MYSQL_DB']
)
return connection
@app.route('/users', methods=['GET'])
def get_users():
connection = get_db_connection()
cursor = connection.cursor(pymysql.cursors.DictCursor)
cursor.execute('SELECT * FROM users')
users = cursor.fetchall()
cursor.close()
connection.close()
return jsonify(users)
@app.route('/users', methods=['POST'])
def add_user():
new_user = request.get_json()
connection = get_db_connection()
cursor = connection.cursor()
sql = 'INSERT INTO users (name, age) VALUES (%s, %s)'
cursor.execute(sql, (new_user['name'], new_user['age']))
connection.commit()
cursor.close()
connection.close()
return jsonify(new_user), 201
if __name__ == '__main__':
app.run(debug=True)
流程图
以下是Flask与PyMySQL之间的数据交互流程图:
flowchart TD
A[用户请求] -->|GET| B[获取用户数据]
B --> C[连接数据库]
C --> D[执行SQL查询]
D --> E[返回用户数据]
E --> F[响应用户]
A -->|POST| G[添加用户数据]
G --> C
C --> H[执行插入SQL]
H --> I[提交事务]
I --> J[响应用户]
交互示例
以下是用户如何通过HTTP请求与Flask应用交互的示例序列图:
sequenceDiagram
participant User
participant FlaskApp
participant MySQL
User->>FlaskApp: GET /users
FlaskApp->>MySQL: 执行SELECT
MySQL-->>FlaskApp: 返回用户数据
FlaskApp-->>User: 返回用户数据
User->>FlaskApp: POST /users
activate User
FlaskApp->>MySQL: 执行INSERT
MySQL-->>FlaskApp: 确认插入
FlaskApp-->>User: 返回新用户
小结
通过上述示例,我们展示了如何将Flask与PyMySQL结合以便实现基本的数据库操作。借助Flask的路由功能和PyMySQL的简单接口,我们能够快速构建RESTful API,方便前端与数据库的交互。希望这个简要的教程能帮助您顺利开始使用Flask和PyMySQL!