引言
Flask是一个轻量级的Web应用框架,而MySQL是一个开源的关系型数据库管理系统。将Flask与MySQL结合使用,可以构建出功能强大且高效的Web应用。本文将提供一个实战交互实例,带你轻松掌握Flask与MySQL的集成使用。
环境准备
在开始之前,确保你已经安装了以下软件:
- Python 3.x
- Flask
- MySQL
- MySQL客户端(如phpMyAdmin)
创建Flask应用
首先,创建一个名为app.py的Python文件,并导入Flask:
from flask import Flask
app = Flask(__name__)
配置MySQL数据库
在MySQL中创建一个数据库和用户,以便Flask应用可以访问它。以下是一个简单的示例:
CREATE DATABASE mydatabase;
CREATE USER 'flaskuser'@'localhost' IDENTIFIED BY 'flaskpass';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'flaskuser'@'localhost';
FLUSH PRIVILEGES;
连接MySQL数据库
在app.py中,使用mysql-connector-python库连接到MySQL数据库:
import mysql.connector
def get_db_connection():
connection = mysql.connector.connect(
host='localhost',
user='flaskuser',
password='flaskpass',
database='mydatabase'
)
return connection
创建模型
创建一个简单的模型来表示用户:
class User:
def __init__(self, id, username, email):
self.id = id
self.username = username
self.email = email
def save_to_db(self):
connection = get_db_connection()
cursor = connection.cursor()
cursor.execute('INSERT INTO users (username, email) VALUES (%s, %s)', (self.username, self.email))
connection.commit()
cursor.close()
connection.close()
@staticmethod
def get_by_id(user_id):
connection = get_db_connection()
cursor = connection.cursor()
cursor.execute('SELECT * FROM users WHERE id = %s', (user_id,))
user = cursor.fetchone()
cursor.close()
connection.close()
return User(user[0], user[1], user[2]) if user else None
@staticmethod
def get_all():
connection = get_db_connection()
cursor = connection.cursor()
cursor.execute('SELECT * FROM users')
users = cursor.fetchall()
cursor.close()
connection.close()
return [User(user[0], user[1], user[2]) for user in users]
创建路由
创建一个路由来展示所有用户:
@app.route('/')
def index():
users = User.get_all()
return '''
<h1>用户列表</h1>
<ul>
{% for user in users %}
<li>{{ user.username }} - {{ user.email }}</li>
{% endfor %}
</ul>
'''
运行Flask应用
在终端中运行以下命令启动Flask应用:
python app.py
现在,你可以通过访问http://localhost:5000/来查看所有用户。
总结
通过本文,你学习了如何使用Flask与MySQL构建一个简单的Web应用。在实际项目中,你可以根据需求添加更多功能和路由。希望这个实战实例能帮助你更好地理解和掌握Flask与MySQL的集成使用。
