使用 Flask 连接 MySQL 数据库的指南
Flask 是一个用 Python 编写的轻量级 Web 应用框架,因其简单易用而受到许多开发者的喜爱。MySQL 是一种成熟的关系型数据库,它在许多应用中被广泛使用。本篇文章将介绍如何在 Flask 应用中连接和读取 MySQL 数据库,并提供适量的代码示例,让你能迅速上手。
环境准备
在开始之前,确保你已经安装了以下环境和库:
- Python 3.x
- Flask
- MySQL 数据库
- Flask-MySQLdb 或 Flask-SQLAlchemy(用于连接 MySQL)
安装 Flask 和 MySQL 连接库
在终端中运行以下命令来安装 Flask 和 Flask-MySQLdb:
pip install Flask Flask-MySQLdb
或者,如果你希望使用 Flask-SQLAlchemy:
pip install Flask Flask-SQLAlchemy
创建 MySQL 数据库
在 MySQL 中创建一个数据库和一张示例表。在 MySQL 命令行中,运行以下 SQL 语句:
CREATE DATABASE travel;
USE travel;
CREATE TABLE destinations (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
country VARCHAR(100) NOT NULL
);
然后,插入一些示例数据:
INSERT INTO destinations (name, country) VALUES
('Eiffel Tower', 'France'),
('Great Wall', 'China'),
('Machu Picchu', 'Peru');
创建 Flask 应用
接下来,我们将创建一个简单的 Flask 应用来读取数据库中的数据。首先,在项目目录中创建一个 app.py
文件。
导入库
在 app.py
文件中,添加如下代码以导入必要的库:
from flask import Flask, jsonify
from flask_mysqldb import MySQL
app = Flask(__name__)
# MySQL 配置
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'your_username'
app.config['MYSQL_PASSWORD'] = 'your_password'
app.config['MYSQL_DB'] = 'travel'
mysql = MySQL(app)
确保将 'your_username'
和 'your_password'
替换为实际的 MySQL 用户名和密码。
创建读取数据的路由
我们将创建一个路由来从 MySQL 数据库读取数据并返回为 JSON 格式。在 app.py
文件中添加以下代码:
@app.route('/destinations', methods=['GET'])
def get_destinations():
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM destinations")
results = cur.fetchall()
cur.close()
# 将结果转换为字典格式
destinations = []
for row in results:
destinations.append({
'id': row[0],
'name': row[1],
'country': row[2]
})
return jsonify(destinations)
启动 Flask 应用
最后,添加以下代码来启动 Flask 应用:
if __name__ == '__main__':
app.run(debug=True)
将以上代码合并,完整的 app.py
文件如下:
from flask import Flask, jsonify
from flask_mysqldb import MySQL
app = Flask(__name__)
# MySQL 配置
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'your_username'
app.config['MYSQL_PASSWORD'] = 'your_password'
app.config['MYSQL_DB'] = 'travel'
mysql = MySQL(app)
@app.route('/destinations', methods=['GET'])
def get_destinations():
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM destinations")
results = cur.fetchall()
cur.close()
# 将结果转换为字典格式
destinations = []
for row in results:
destinations.append({
'id': row[0],
'name': row[1],
'country': row[2]
})
return jsonify(destinations)
if __name__ == '__main__':
app.run(debug=True)
启动和测试
在终端中运行 Flask 应用:
python app.py
打开浏览器并访问 ` JSON 格式显示的所有旅行目的地。
旅行图示例
接下来,我们使用 Mermaid 语法展示一次旅行的过程,以让读者更直观地了解从起点到目的地的过程。
journey
title 旅行过程
section 计划旅行
收集信息: 5: 我
确定时间: 4: 我
预订机票: 3: 我
section 出发
到达机场: 5: 我
办理登机手续: 4: 我
等待登机: 3: 我
section 到达目的地
入境检查: 5: 我
获取行李: 4: 我
开始探索: 5: 我
结尾
通过本文的介绍,我们成功地创建了一个简单的 Flask 应用,并连接到 MySQL 数据库来读取旅行目的地的数据。Flask 提供了一个很好的平台,而 MySQL 则让数据管理变得简单。在实际开发中,你可以根据需求扩展应用功能,添加用户认证、数据更新和删除等功能。
希望这篇文章能为你的 Flask 学习之路提供帮助。如果你有任何疑问或建议,也欢迎在评论区与我们分享!