Flask(二)项目结构与环境配置

2.1 Flask 项目的基本结构

在 Flask 开发中,合理的项目结构能提高代码的可维护性和扩展性。一个典型的 Flask 项目结构如下:

csharp

复制编辑

my_flask_project/

│── app/ # 应用模块

│ ├── init.py # 初始化 Flask 应用

│ ├── routes.py # 视图和路由

│ ├── models.py # 数据库模型

│ ├── forms.py # 表单处理

│ ├── templates/ # HTML 模板文件

│ ├── static/ # 静态文件(CSS, JS, Images)

│── config.py # 配置文件

│── run.py # 启动脚本

│── requirements.txt # 依赖文件

│── venv/ # 虚拟环境

2.1.1 app/init.py**(初始化 Flask 应用)******

python 复制代码
from flask import Flask

def create_app():
    app = Flask(__name__)

    app.config.from_object('config.Config')

    from app.routes import main
    app.register_blueprint(main)
    
    return app

2.1.2 app/routes.py**(定义路由)******

python 复制代码
from flask import Blueprint

main = Blueprint('main', __name__)

@main.route('/')def home():
    return "Welcome to Flask Project!"

2.1.3 config.py**(配置 Flask)******

python 复制代码
import os

class Config:
    SECRET_KEY = os.getenv('SECRET_KEY', 'mysecretkey')

    DEBUG = os.getenv('FLASK_DEBUG', True)

    SQLALCHEMY_DATABASE_URI = 'sqlite:///site.db'

    SQLALCHEMY_TRACK_MODIFICATIONS = False

2.1.4 run.py**(启动 Flask 应用)******

python 复制代码
from app import create_app

app = create_app()

if __name__ == '__main__':
    app.run()

2.2 配置虚拟环境

2.2.1 创建虚拟环境

python -m venv venv

2.2.2 激活虚拟环境

Windows:

venv\Scripts\activate

Mac/Linux:

source venv/bin/activate

2.2.3 安装依赖

pip install -r requirements.txt

requirements.txt示例:

Flask

Flask-SQLAlchemy

Flask-WTF

Flask-Login

2.3 配置环境变量

在开发、测试和生产环境中,我们可以使用环境变量来配置 Flask。

2.3.1 在 Linux/Mac 设置环境变量

export FLASK_APP=run.pyexport FLASK_ENV=development

2.3.2 在 Windows 设置环境变量

set FLASK_APP=run.pyset FLASK_ENV=development

2.4 运行 Flask 应用

2.4.1 启动 Flask 服务器

flask run

2.4.2 指定 IP 和端口

flask run --host=0.0.0.0 --port=8000

2.5 结语

本章介绍了 Flask 项目的标准结构、如何创建和管理虚拟环境,以及如何配置和运行 Flask 应用。在下一章,我们将深入探讨 Flask 的路由系统和视图函数。

相关推荐
姜鱼问生11 分钟前
fail2ban 实战:从默认配置到生产可用
后端·算法·架构
czq_268671948719 分钟前
Python打卡第36天
pytorch·python·深度学习
计算机编程指导师21 分钟前
【计算机毕设】基于Hadoop+Spark的美国互联网银行贷款数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·贷款
Starry-sky(jing)36 分钟前
onnxruntime 安装后 GPU 没加速?3 条命令确认它跑在 CPU 还是 GPU
python·gpu·cuda·onnxruntime·推理加速
步行cgn37 分钟前
Spring AOP 实战:安全日志
python·安全·spring
诺伦1 小时前
OpenAI Agents API 公测拆解:托管编排+持久会话+自有沙箱搭一条自动增长流水线 | RiseClaw玄策
python·openai·ai agent·营销自动化·agent编排
JavaGuide1 小时前
DeepSeek Harness 重磅更新,Codex、Claude Code 子智能体进官方插件列表了,还有 Git 工作树和思考翻译!
前端·后端
坊钰1 小时前
【LangGraph框架入门级】2. 图核心概念:State、Node、Edge 与 Reducers
python·ai编程·langgraph
wewowilling1 小时前
AI大模型开发--01Python基础(无废话)
开发语言·python·函数
小猴子爱上树1 小时前
跨境电商AI图片翻译工具:批量图片翻译、视频字幕翻译与智能抠图一站式解决
大数据·人工智能·python·音视频