当前位置: 首页 > news >正文

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
  • 无命名冲突
  • 可直接运行
http://www.jsqmd.com/news/793092/

相关文章:

  • BrowserMCP:基于MCP协议的浏览器自动化与AI智能体开发指南
  • WiMAX OFDMA技术原理与RS测试系统实战解析
  • 逻辑感知布局分析(LDL)在先进工艺芯片设计中的应用
  • Linux桌面效率神器:unclutter-xfixes鼠标指针自动隐藏工具详解
  • AI芯片软硬件协同设计核心知识体系
  • 单调栈(Monotonic Stack):速寻「左右首个最值」的线性利器
  • 使用Python快速接入Taotoken调用多款大模型API
  • OpenClaw双模型工作流:构建高效AI协同系统的架构与实践
  • Dify集成Mem0插件:为AI应用构建长期记忆系统的实践指南
  • 河南全新料MPP电力管厂家价格
  • 【学习笔记】大模型微调实战指南
  • 从看见到了解世界:视觉世界模型研究全景解析
  • 书匠策AI到底能帮你搞定毕业论文几步?一个教育博主的拆解实录
  • FFmpeg GUI完整指南:告别命令行,3分钟掌握图形化音视频处理
  • 使用 hyperframes 结合其他技术是否可以做出XX动物园游览动态图
  • VIRSO框架:面向边缘计算的图神经网络优化设计
  • 基于MCP与SSE实现AI助手与MQTT物联网协议的无缝集成
  • Cortex-M7架构解析与嵌入式系统优化实践
  • 支付宝支付集成实战:从‘系统繁忙’(4000)到成功调起,我的完整排查记录与SDK使用心得
  • 安装社保ca之后 HP smart不能使用了
  • 55.人工智能实战:大模型网关怎么设计?统一鉴权、限流、模型路由、成本统计与审计日志
  • AI编程助手技能统一管理:解决多工具技能碎片化难题
  • 深度学习模型规模优化:时间约束下的最佳实践
  • 2026年第18周最热门的开源项目(Github)
  • Dify工作流生成器实战:用自然语言快速构建复杂AI应用流程
  • OllamaKit:Swift原生AI应用开发框架,简化本地大模型集成
  • ADC抗混叠滤波器设计:原理、选型与工程实践
  • 开源协作平台ionclaw:用代码定义治理,重塑开发者协作生态
  • 对比按Token计费与Token Plan套餐的实际成本节省体会
  • ARM CoreSight Trace Funnel架构与调试实战