标准Flask项目模板(一键脚本)


标准 Flask 项目模板(一键脚本)

标准 Flask 项目模板,带基础目录结构、路由、模板(HTML)、静态文件(CSS/JS),还能直接运行。

🧱 项目结构概览

假设你的项目叫 my_flask_app,虚拟环境叫 env_flask

my_flask_app/
├── env_flask/             ← 虚拟环境(不上传到Git)
├── app/
│   ├── __init__.py        ← 初始化 Flask app
│   ├── routes.py          ← 路由控制
│   ├── static/            ← 放 CSS / JS / 图片
│   │   ├── style.css
│   └── templates/         ← 放 HTML 模板
│       └── index.html
├── run.py                 ← 启动文件
├── requirements.txt       ← 依赖
└── .gitignore

🧰 一键创建脚本(macOS / Linux 版)

复制以下命令在终端执行:

# 1️⃣ 创建项目文件夹
mkdir my_flask_app && cd my_flask_app

# 2️⃣ 创建虚拟环境
python3 -m venv env_flask

# 3️⃣ 启动虚拟环境
source env_flask/bin/activate

# 4️⃣ 安装 Flask
pip install flask

# 5️⃣ 生成 requirements.txt
pip freeze > requirements.txt

# 6️⃣ 创建目录结构
mkdir -p app/static app/templates

# 7️⃣ 创建 Flask 初始化文件
cat > app/__init__.py << 'EOF'
from flask import Flask

def create_app():
    app = Flask(__name__)

    from . import routes
    app.register_blueprint(routes.bp)

    return app
EOF

# 8️⃣ 创建路由文件
cat > app/routes.py << 'EOF'
from flask import Blueprint, render_template

bp = Blueprint("main", __name__)

@bp.route("/")
def index():
    return render_template("index.html", title="Home")
EOF

# 9️⃣ 创建 HTML 模板
cat > app/templates/index.html << 'EOF'
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ title }}</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
    <h1>Hello, Flask Project!</h1>
    <p>This is your first Flask template.</p>
</body>
</html>
EOF

# 🔟 创建 CSS 文件
cat > app/static/style.css << 'EOF'
body {
    font-family: Arial, sans-serif;
    text-align: center;
    padding-top: 50px;
}
EOF

# 11️⃣ 创建启动文件
cat > run.py << 'EOF'
from app import create_app

app = create_app()

if __name__ == "__main__":
    app.run(debug=True)
EOF

# 12️⃣ 创建 .gitignore
cat > .gitignore << 'EOF'
env_flask/
__pycache__/
*.pyc
EOF

# ✅ 运行项目
python run.py

🚀 启动成功后

打开浏览器访问 👉 http://127.0.0.1:5000 会看到:

“Hello, Flask Project!”


🧩 后续扩展建议

功能文件说明
添加新页面app/routes.py增加 @bp.route("/about")
新模板页面app/templates/about.html可继承 base.html
静态资源app/static/CSS, JS, 图片
环境变量.env 文件可结合 python-dotenv 使用
部署Gunicorn / Docker后期可以迁移