第一个 Web 应用:Hello World

选 Flask 还是 Django ?

轻量级的 Flask

目录架构

灵活的项目架构,可以让你在后面业务扩展中,处理的游刃有余

环境设置

  • venv创建
shell 复制代码
# 创建环境
python3 -m venv dev
# 激活环境
. dev/bin/activate
  • conda设置
shell 复制代码
# 创建环境
conda create --name myenv python=3.9
# 激活环境
conda activate myenv
  • 建议使用venv方式
好处: 全局不需要安装其他依赖, 自带, 直接使用 !

依赖安装

shell 复制代码
    pip install flask

文件配置

  • 主页模块(app/routes/admin/home.py)
python 复制代码
from flask import Blueprint
from flask import render_template

# 设置蓝图
home_bp = Blueprint('home', __name__, url_prefix='/admin')

# 路由
@home_bp.route('/')
def index():
    # 这里使用静态模版文件
    return render_template('home/index.html', message="Hello World!")
  • 模版(app/template/home/index.html)
js 复制代码
 <h1>{{ message }}</h1>
  • 创建 Flask 应用程序实例(app/init.py)
python 复制代码
from flask import Flask
def create_app(config_name=None):
    # 创建 Flask 应用程序实例
    app = Flask(__name__)
    # 注册蓝图
    from .routes import home_bp
    app.register_blueprint(home_bp)
    return app

运行服务

python 复制代码
from app import create_app
app = create_app()
if __name__ == '__main__':
    app.run(debug=True)
shell 复制代码
  python run.py

常见问题解答

Q1: 蓝图之间如何共享数据?
  • 通过应用上下文 (current_app) 或全局变量(不推荐)
  • 推荐使用 Flask 扩展(如数据库连接池)
Q2: 如何实现跨蓝图的重定向?
python 复制代码
from flask import redirect, url_for
@admin_bp.route('/back-home')
def back_to_home():
    return redirect(url_for('home.index'))  # '蓝图名.视图函数名'
Q3: 为什么推荐使用工厂模式?
  • 测试友好:可创建多个独立应用实例
  • 配置灵活:根据环境加载不同配置
  • 延迟加载:避免循环导入问题
相关推荐
程序员清风17 分钟前
LangGraph 入门:用状态机设计可靠的 Agent 工作流
人工智能·python
Data_Journal24 分钟前
使用 AutoScraper 进行网页抓取:分步教程
大数据·开发语言·数据库·python·scrapy
FanetheDivine27 分钟前
学习python 1.搭建python环境
python
虎虎(_ _)。゜zzZ1 小时前
SQLAlchemy入门教程
数据库·后端·python·sql·ai·sqlalchemy
BUG研究员_2 小时前
LangGraph持久化之失败后恢复运行
python·agent
gb42152872 小时前
数字人面试和RAG区别?
python
宁渡AI大模型2 小时前
AI 全栈面试新趋势:Vibe Coding、前端、Java 后端高频面试题深度解析|河南宁渡科技有限公司编程教程
java·javascript·人工智能·python·ai大模型
Groundwork Explorer2 小时前
ESP32-C3 SuperMini 排查WIFI收发故障
python·单片机·嵌入式硬件·mcu
智购科技自动售货机工厂2 小时前
2026自动售货机端侧AI降本逻辑:从云端API到本地推理的成本重构~YH
人工智能·python·ui·面试·交互
Data_Journal2 小时前
如何将网页抓取用于机器学习
大数据·开发语言·数据库·python·scrapy