Flask作为一个轻量级的Python Web框架,提供了极大的灵活性和可扩展性,使得与多种数据库的连接变得简单而高效
MySQL作为一种广泛使用的关系型数据库管理系统(RDBMS),以其高性能、可靠性和易用性而著称
本文将详细介绍如何在Flask应用中连接MySQL数据库,从而构建功能强大的Web应用
一、环境准备 在开始之前,我们需要确保已经安装了必要的软件: -Python:建议使用Python 3.8及以上版本,以确保兼容性和性能
-MySQL:安装MySQL 8.0或更高版本,推荐使用社区版
-Flask:通过pip安装Flask框架
-MySQL驱动:推荐使用PyMySQL或Flask-MySQLdb作为MySQL的Python驱动
安装命令如下: bash pip install Flask pip install pymysql 或者 pip install Flask-MySQLdb 二、安装与配置 2.1 安装Flask与MySQL驱动 首先,确保你已经安装了Flask和PyMySQL或Flask-MySQLdb
如果你选择使用Flask-MySQLdb,可以直接通过pip安装: bash pip install Flask Flask-MySQLdb 或者,如果你更倾向于使用PyMySQL,可以安装它: bash pip install Flask pymysql 2.2 创建Flask应用 在你的项目根目录下创建一个Python文件,例如`app.py`,并编写基本的Flask应用骨架: python from flask import Flask app = Flask(__name__) if__name__ ==__main__: app.run(debug=True) 2.3 配置MySQL连接 在Flask应用中配置MySQL数据库连接通常是在应用的配置对象中完成的
你可以在`app.py`中添加数据库连接配置,例如数据库的用户名、密码、数据库名和主机地址等
使用Flask-MySQLdb时,配置如下: python from flask import Flask from flask_mysqldb import MySQL app = Flask(__name__) MySQL configurations app.config【MYSQL_HOST】 = localhost app.config【MYSQL_USER】 = your_username app.config【MYSQL_PASSWORD】 = your_password app.config【MYSQL_DB】 = your_database mysql = MySQL(app) 如果使用PyMySQL,则需要在代码中显式创建数据库连接对象: python from flask import Flask import pymysql app = Flask(__name__) MySQL configurations(typically loaded from environment variables or a config file) host = localhost user = your_username password = your_password db = your_database charset = utf8mb4 Create a connection object connection = pymysql.connect(host=host, user=user, password=password, db=db, charset=charset, cursorclass=pymysql.cursors.DictCursor) 注意:在生产环境中,强烈建议使用环境变量或配置文件来管理敏感信息,如数据库密码,以提高应用的安全性
三、数据库操作 在Flask应用中,我们通常会将与数据库交互的代码封装在视图函数中
下面,我们将创建一个基本的路由,示范如何从数据库中插入和查询数据
3.1 使用Flask-MySQLdb python from flask import Flask, request, jsonify from flask_mysqldb import MySQL app = Flask(__name__) MySQL configurations app.config【MYSQL_HOST】 = localhost app.config【MYSQL_USER】 = your_username app.config【MYSQL_PASSWORD】 = your_password app.config【MYSQL_DB】 = your_database mysql = MySQL(app) @app.route(/add, methods=【POST】) def add_user(): data = request.get_json() name = data【name】 age = data【age】 cur = mysql.connection.cursor() cur.execute(INSERT INTO users(name, age) VALUES(%s, %s),(name, age)) mysql.connection.commit() cur.close() return jsonify({message: User added successfully!}) @app.route(/users, methods=【GET】) def get_users(): cur = mysql.connection.cursor() cur.execute(SELECTFROM users) results = cur.fetchall() cur.close() return jsonify(results) if__name__ ==__main__: app.run(debug=True) 3.2 使用PyMySQL python from flask import Flask, request, jsonify import pymysql app = Flask(__name__) MySQL configurations host = localhost user = your_username password = your_password db = your_database charset = utf8mb4 connection = pymysql.connect(host=host, user=user, password=password, db=db, charset=charset, cursorclass=pymysql.cursors.DictCursor) @app.route(/add, methods=【POST】) def add_user(): data = request.get_json() name = data【