news 2026/5/11 2:28:31

Flask + MySQL 极简 Web 项目搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flask + MySQL 极简 Web 项目搭建

Flask + MySQL 极简 Web 项目搭建

一、项目结构(超干净)

Plain Text
flask_demo/
├── app.py # 主程序
├── requirements.txt # 依赖
└── .env # 数据库配置

二、requirements.txt(直接复制)

txt
flask
flask-sqlalchemy
pymysql
python-dotenv
cryptography

三、.env 数据库配置

env
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=你的密码
DB_NAME=flask_demo
DB_PORT=3306

四、[app.py](app.py)(完整可运行代码)

python
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from dotenv import load_dotenv
import os

# 加载环境变量
load_dotenv()

# 初始化 Flask
app = Flask(__name__)

# 连接 MySQL
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{os.getenv('DB_USER')}:{os.getenv('DB_PASSWORD')}@{os.getenv('DB_HOST')}:{os.getenv('DB_PORT')}/{os.getenv('DB_NAME')}"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# 初始化数据库
db = SQLAlchemy(app)

# ==================== 数据库模型 ====================
class User(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
email = db.Column(db.String(100), unique=True)
age = db.Column(db.Integer)

# ==================== 接口(CRUD) ====================

# 1. 创建用户
@app.route('/user', methods=['POST'])
def create_user():
data = request.json
user = User(name=data['name'], email=data['email'], age=data.get('age'))
db.session.add(user)
db.session.commit()
return jsonify({"msg": "创建成功", "id": user.id})

# 2. 查询所有用户
@app.route('/users', methods=['GET'])
def get_users():
users = User.query.all()
res = [{"id": u.id, "name": u.name, "email": u.email, "age": u.age} for u in users]
return jsonify(res)

# 3. 查询单个用户
@app.route('/user/<int:id>', methods=['GET'])
def get_user(id):
user = User.query.get(id)
if not user:
return jsonify({"msg": "用户不存在"}), 404
return jsonify({"id": user.id, "name": user.name, "email": user.email, "age": user.age})

# 4. 更新用户
@app.route('/user/<int:id>', methods=['PUT'])
def update_user(id):
user = User.query.get(id)
if not user:
return jsonify({"msg": "用户不存在"}), 404
data = request.json
user.name = data.get('name', user.name)
user.email = data.get('email', user.email)
user.age = data.get('age', user.age)
db.session.commit()
return jsonify({"msg": "更新成功"})

# 5. 删除用户
@app.route('/user/<int:id>', methods=['DELETE'])
def delete_user(id):
user = User.query.get(id)
if not user:
return jsonify({"msg": "用户不存在"}), 404
db.session.delete(user)
db.session.commit()
return jsonify({"msg": "删除成功"})

# 启动时创建表
with app.app_context():
db.create_all()

# 启动
if __name__ == '__main__':
app.run(debug=True)

五、运行步骤(超级简单)

1. 安装依赖

bash
pip install -r requirements.txt

2. 启动项目

bash
python app.py

3. 访问地址

Plain Text
http://127.0.0.1:5000

4. 接口列表

  • POST/user→ 创建用户
  • GET/users→ 获取所有用户
  • GET/user/1→ 获取单个用户
  • PUT/user/1→ 更新用户
  • DELETE/user/1→ 删除用户

✅ 这个 Flask 项目特点

  • 代码最少
  • 结构最简单
  • 直接连接 MySQL
  • 完整 CRUD
  • 无命名冲突
  • 可直接运行
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 2:27:36

C# WMS 完整极简落地框架

一、技术栈 后端&#xff1a;ASP.NET Core 8 WebAPI数据库&#xff1a;SQL ServerORM&#xff1a;Entity Framework Core架构&#xff1a;三层&#xff08;控制器→服务→仓储&#xff09; 二、项目目录结构 plaintext WMS.WebAPI // 接口层 控制器 WMS.Service …

作者头像 李华
网站建设 2026/5/11 2:26:32

OpenClaw双模型工作流:构建高效AI协同系统的架构与实践

1. 项目概述与核心价值最近在开源社区里看到一个挺有意思的项目&#xff0c;叫cait52099/openclaw-dual-model-workflow。光看这个名字&#xff0c;你大概能猜到它和“双模型”以及“工作流”有关。没错&#xff0c;这是一个围绕“OpenClaw”概念构建的&#xff0c;采用双模型协…

作者头像 李华
网站建设 2026/5/11 2:18:02

基于MCP与SSE实现AI助手与MQTT物联网协议的无缝集成

1. 项目概述&#xff1a;为AI助手打通MQTT世界的桥梁最近在折腾一个挺有意思的项目&#xff0c;叫ysfscream/mqttx-mcp-sse-server。简单来说&#xff0c;这是一个实现了Model-Context Protocol (MCP)的服务器&#xff0c;它能让像 Claude、Cursor 这类 AI 助手&#xff0c;通过…

作者头像 李华
网站建设 2026/5/11 2:16:33

Netgear路由器终极救援指南:用nmrpflash轻松修复变砖设备

Netgear路由器终极救援指南&#xff1a;用nmrpflash轻松修复变砖设备 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 当你的Netgear路由器固件升级失败、意外断电或系统崩溃后无法启动时&#xff0c;别急…

作者头像 李华
网站建设 2026/5/11 2:11:53

PunkGo Jack:为AI编码助手构建加密审计凭证的实战指南

1. 项目概述&#xff1a;为AI编码会话装上“行车记录仪”如果你和我一样&#xff0c;日常开发重度依赖Claude Code或Cursor这类AI编码助手&#xff0c;那你一定也经历过那种“心跳骤停”的时刻&#xff1a;刚让AI改了一段核心逻辑&#xff0c;回头一看&#xff0c;某个关键配置…

作者头像 李华