news 2026/10/5 10:43:34

Blueprint和route的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Blueprint和route的区别

蓝图和路由的区别?

@main_bp.route和@app.route本质都是给视图函数绑定 URL,区别在于:

@app.route直接注册到 Flask 应用;

@main_bp.route先注册到蓝图,蓝图再通过app.register_blueprint()注册到应用。

代码对比

方式一:直接用@app.route

fromflaskimportFlask,render_template app=Flask(__name__)@app.route('/')defindex():returnrender_template('index.html')@app.route('/login')deflogin():return'登录页'@app.route('/register')defregister():return'注册页'if__name__=='__main__':app.run()

方式二:用蓝图@main_bp.route

# app/main/__init__.pyfromflaskimportBlueprint main_bp=Blueprint('main',__name__)fromapp.mainimportroutes# 导入路由,避免循环导入# app/main/routes.pyfromflaskimportrender_templatefromapp.mainimportmain_bp@main_bp.route('/')defindex():returnrender_template('index.html')# app/auth/routes.pyfromflaskimportBlueprint auth_bp=Blueprint('auth',__name__)@auth_bp.route('/login')deflogin():return'登录页'@auth_bp.route('/register')defregister():return'注册页'# app/__init__.pyfromflaskimportFlaskfromapp.mainimportmain_bpfromapp.authimportauth_bpdefcreate_app():app=Flask(__name__)app.register_blueprint(main_bp)# /app.register_blueprint(auth_bp,url_prefix='/auth')# /auth/login, /auth/registerreturnapp

主要区别

维度@app.route@main_bp.route
注册对象直接注册到app先注册到蓝图,再由app注册
URL 前缀每个路由手动写注册时可统一加url_prefix
代码组织适合小项目,路由容易堆在一起适合按模块拆分,如 main、auth、api
url_forurl_for('index')url_for('main.index')
复用性不可复用同一个蓝图可注册到多个应用或不同前缀
独立资源共用templates/、static/蓝图可配置自己的模板和静态文件目录

企业里哪个用得多?

中小项目、练习项目、原型项目:@app.route更常见,因为简单直接,文件少,不用一开始就拆模块。

正式项目、多人协作项目、中大型项目:蓝图用得更多。实际工作中,Flask 项目通常会按功能拆成main、auth、api、admin等蓝图,再配合create_app工厂模式。

简单判断:

  • 只有一个文件、几个路由 → 用@app.route就行。
  • 有登录、后台、API、用户中心等多个模块 → 用蓝图更合适。
  • 准备做测试、多环境配置、多人开发 → 蓝图 +create_app是更常见的工程化写法。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 10:42:13

银河麒麟分辨率调不动?xrandr自定义模式与黑屏自救全解

如果你和我一样在银河麒麟上插过外接显示器,大概率遇到过这种场景:系统设置里分辨率列表只剩 1024x768 和 800x600,1920x1080 就像被系统遗忘了;或者接上会议室的老投影仪,输出的画面拉伸变形,怎么调都找不…

作者头像 李华
网站建设 2026/10/5 10:41:58

轻量U-Net混凝土裂缝识别实战:从数据标注到移动端部署

简介:本资源是西南交通大学《智能建造与运维养》课程的实践型作业文档,面向土木工程、智能建造及相关专业本科生,聚焦卷积神经网络在结构表面裂缝图像语义分割中的工程落地。内容涵盖CRACK500数据集获取与预处理、U-Net等主流模型选型与Tenso…

作者头像 李华
网站建设 2026/10/5 10:41:48

SpringBoot+Vue实战:无人智慧超市管理系统全栈架构与实现详解

从毕业设计项目到可演示的完整系统,中间隔着的不是代码量,而是你是否真正理解每个模块为什么要这么做。网上这类“SpringBootVue源码”一抓一大把,但绝大多数人下载下来跑不起来,或者跑起来了答辩时被问两句就卡壳。这篇文章我打算…

作者头像 李华
网站建设 2026/10/5 10:40:59

TRAE智能体与MCP实战:从零配置到跑通自动化开发任务

“工具自己会调用工具”这件事,我是在TRAE智能体里第一次真正感受到的。以前用AI写代码,基本上是人机对答:我描述需求,它生成代码,我复制粘贴,再跑起来看哪里报错。听起来流畅,但实际干起活来,效…

作者头像 李华
网站建设 2026/10/5 10:40:53

DeepSeek-R1本地RAG实战:Mac/Win双平台零依赖部署指南

简介:本资源是一份面向AI开发者与技术实践者的本地知识库构建指南,聚焦DeepSeek-R1大模型在RAG(检索增强生成)场景下的轻量级落地应用。文档系统讲解如何利用Ollama部署DeepSeek-R1、Nomic-Embed-Text向量模型及AnythingLLM平台&a…

作者头像 李华
网站建设 2026/10/5 10:39:04

中职网络安全赛题实战拆解:从加固、取证到CTF攻防的完整链路

简介:这份文档是2022年全国职业院校技能大赛中职组网络安全赛项的完整赛题(第9套),面向职业院校网络安全竞赛选手、指导教师以及备赛训练的学习者,用于模拟真实赛场环境、检验安全加固与攻防实战能力。赛题围绕基础设施…

作者头像 李华