在大多数情况下,我们需要应用相同的结构、内容或数据集,只是语言和本地化设置不同。熟悉的示例是子文件夹、本地化。
为了高效地完成它,我会为初学者介绍 Flask 蓝图,您可以在 Web App 或 DApp 开发的早期阶段学习如何构建,从而简化之后的所有工作。
目录:使用 Flask 蓝图分段 Web 应用程序结构
- 什么是 Flask 蓝图
- 使用 Flask Blueprint 的一些好处
- 层和文件夹结构
- 分支蓝图配置
- 主应用程序配置
- 使用 Flask Blueprint 的 Web App 结构的 Python 脚本示例(包括数据库、使用 Blueprint 的用户身份验证)
什么是 Flask 蓝图
Flask Blueprint 是 Flask Web 框架提供的一项功能,它允许您将 Flask 应用程序组织成可重用的组件或模块。它提供了一种定义和分组相关视图、模板、静态文件和其他应用程序组件的方法,帮助您创建模块化和可扩展的应用程序。
Flask 蓝图充当定义一组路由和相关功能的蓝图或模板。它提供了一种将应用程序的不同部分(例如路由、模板、静态文件和错误处理程序)组织为逻辑单元的方法。
通过使用 Flask 蓝图,您可以将应用程序划分为更小、更易于管理的组件。每个蓝图都可以有自己的一组路由和关联的函数。然后可以将这些蓝图注册到 Flask 应用程序以使其可访问。
使用 Flask Blueprint 的一些好处包括:
- 模块化组织:蓝图使您能够将应用程序分解为更小的、可重用的模块,从而更易于管理和维护。
- 协作开发:多个开发人员可以同时处理不同的蓝图,从而实现更好的协作和关注点分离
- URL 前缀:可以为蓝图分配 URL 前缀,从而更轻松地使用公共基本 URL 定义路由。
- 模板和静态文件继承:蓝图可以定义自己的模板和静态文件,这些模板和静态文件可以被主应用程序或其他蓝图继承。
- 错误处理:蓝图可以定义自己的错误处理程序,允许在应用程序的特定部分进行自定义错误处理。
层和文件夹结构
与Blueprint结构相比,基本上正常的做法需要开发人员在根目录中添加三个必备文档,分别是app.py和templates文件夹中的html脚本以及statics中的其余材料、CSS或JS。两个文件夹,app,py 位于根文件夹中。
相反,使用蓝图时,请确保任何前缀层或子文件夹脚本不能放入根文件夹中。仅保留 app.py 和 create_app() 函数,以便 Flask 服务器可以正确检测到激活脚本。
对于每个蓝图,它都需要上面提到的三个必备元素(静态文件夹、模板文件夹和分支脚本)。
分支蓝图配置
文件夹和路径准备好后,我们就可以开始配置蓝图了。在分支方面,我们需要导入flask和blueprint来创建一个具有可选模块和信息的对象。示例如下:
From flask import Blueprint
JPSiteScript = Blueprint ( 'japaneseSite' , __name__ , template_folder = "templates" , static_folder = 'static/assets' , static_url_path = '/static/assets' )
然后,我们可以继续使用 japaneseSite 而不是没有 Blueprint 的应用程序来设置路由,如下所示
# Define routes and functions
@japaneseSite.route('/login')
def login():
return 'Login page'
主应用程序配置
在主 app.py 中,我们还需要告诉 Flask 我们有多少个蓝图以及它们是什么。所以这里有一种注册每个蓝图的方法
From abc import JPSiteScript
app.register_blueprint(JPSiteScript, url_prefix='/jp')
我想详细说明 url_prefix,特别是在这里,因为它是一种使用它来设置多个国家/地区站点结构的方法。我们不需要在每个Blueprint中一一设置。 Url_prefix 表示来自该特定蓝图的所有路由都将使用 /jp 作为 URL 路径中的子文件夹。超级方便。
使用 Flask Blueprint 的 Web App 结构的 Python 脚本示例(包括使用 Blueprint 的数据库集成、用户身份验证集成)
如果您对第 82 章 – 使用 Flask 蓝图分段 Web 应用程序结构感兴趣,请通过添加消息“Chapter 82+ Flask Blueprint 设置的完整脚本”来订阅我们的新闻通讯。当最新的应用程序脚本上线时,我们会向您发送脚本。
我希望您喜欢阅读第 82 章 – 使用 Flask 蓝图分段 Web 应用程序结构。如果您这样做了,请通过执行下列操作之一来支持我们,因为这总是对我们的频道有所帮助。
- 通过 PayPal ( paypal.me/Easy2digital ) 支持并捐赠我们的频道
- 订阅我的频道并打开通知铃Easy2Digital Youtube 频道。
- 关注并喜欢我的页面Easy2Digital Facebook 页面
- 使用主题标签 #easy2digital 在您的社交网络上分享文章
- 您订阅我们的每周通讯即可接收 Easy2Digital 最新文章、视频和折扣代码
- 通过 Patreon 订阅我们的月度会员即可享受独家优惠 ( www.patreon.com/louisludigital )