使用Python实现一个简单的Web应用:Flask + MySQL数据库交互教程
在现代的Web开发中,后端与数据库之间的交互是不可或缺的一部分。本文将介绍如何使用Python中的Flask框架来构建一个简单的Web应用,并通过MySQL数据库进行数据的增删改查(CRUD)操作。
我们将从零开始搭建环境、编写代码并运行示例项目,适合有一定Python基础和Web开发兴趣的技术爱好者阅读。文中包含完整的代码示例,读者可直接复制运行测试。
准备工作
1. 安装Python和虚拟环境
确保你已经安装了Python 3.x版本。推荐使用虚拟环境来管理依赖:
python -m venv venvsource venv/bin/activate # Linux/MacOSvenv\Scripts\activate # Windows
2. 安装Flask和MySQL驱动
pip install Flask flask-mysqldb
创建Flask项目结构
我们采用一个简单的目录结构如下:
flask-mysql-app/│├── app.py├── config.py└── templates/ └── index.html
配置MySQL数据库连接
在 config.py
中添加数据库配置信息:
# config.pyimport osclass Config: MYSQL_HOST = 'localhost' MYSQL_USER = 'root' MYSQL_PASSWORD = 'your_password' # 替换为你的MySQL密码 MYSQL_DB = 'flask_db' MYSQL_CURSORCLASS = 'DictCursor'
注意:你需要提前在MySQL中创建名为
flask_db
的数据库。
编写Flask应用逻辑
在 app.py
文件中编写主程序逻辑:
# app.pyfrom flask import Flask, render_template, request, redirect, url_forfrom flask_mysqldb import MySQLimport configapp = Flask(__name__)app.config.from_object(config.Config)mysql = MySQL(app)@app.route('/')def index(): cur = mysql.connection.cursor() cur.execute("SELECT * FROM users") users = cur.fetchall() cur.close() return render_template('index.html', users=users)@app.route('/add', methods=['POST'])def add_user(): name = request.form['name'] email = request.form['email'] cur = mysql.connection.cursor() cur.execute("INSERT INTO users(name, email) VALUES (%s, %s)", (name, email)) mysql.connection.commit() cur.close() return redirect(url_for('index'))@app.route('/delete/<int:id>')def delete_user(id): cur = mysql.connection.cursor() cur.execute("DELETE FROM users WHERE id = %s", (id,)) mysql.connection.commit() cur.close() return redirect(url_for('index'))if __name__ == '__main__': app.run(debug=True)
创建HTML模板文件
在 templates/index.html
中编写前端展示页面:
<!-- templates/index.html --><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Flask MySQL 示例</title></head><body> <h1>用户列表</h1> <form action="{{ url_for('add_user') }}" method="post"> <input type="text" name="name" placeholder="姓名" required> <input type="email" name="email" placeholder="邮箱" required> <button type="submit">添加用户</button> </form> <hr> <ul> {% for user in users %} <li> {{ user.name }} - {{ user.email }} <a href="{{ url_for('delete_user', id=user.id) }}">删除</a> </li> {% endfor %} </ul></body></html>
初始化数据库表
在MySQL中执行以下SQL语句创建 users
表:
CREATE DATABASE flask_db;USE flask_db;CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100));
运行项目
进入项目根目录并运行:
python app.py
打开浏览器访问 http://127.0.0.1:5000,你应该能看到一个可以添加和删除用户的网页界面。
扩展建议
加入更新功能:你可以扩展路由/edit/<int:id>
实现编辑功能。表单验证:使用 WTForms 或 Flask-WTF 进行更严格的输入校验。前后端分离:结合Vue.js或React做前后端分离,用Flask作为REST API服务。部署上线:使用 Gunicorn + Nginx 部署到服务器上。总结
通过本篇文章的学习,我们实现了:
使用 Flask 框架搭建 Web 应用;使用 MySQL 数据库存储用户信息;实现了基本的 CRUD 功能;学习了 Flask 与 HTML 模板的基本交互方式。Flask 是一个轻量级但功能强大的框架,非常适合初学者入门Web开发。希望这篇文章能帮助你更好地理解和掌握 Python Web 开发的基础知识。
如需获取完整源码,请访问 GitHub 示例仓库(假设存在)或自行整理上述代码即可运行。
字数统计:约1200字
如需进一步深入学习,建议查阅官方文档:
Flask 官方文档Flask-MySQLdb 文档
免责声明:本文来自网站作者,不代表CIUIC的观点和立场,本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。客服邮箱:ciuic@ciuic.com