- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Flask-蓝图 blueprint详情由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
前言:
我们的应用经常会有很多小模块,比如用户模块、后台管理模块等,虽然这些模块都在同一个应用中,但是功能大不相同,把他们放在同一个文件中,显得十分杂乱,不便于管理维护,那么有没有什么方法可以将模块分开管理呢?是有的!Flask 蓝图(Blueprint),它可以模块化管理路由,使用蓝图可以把不同模块的视图函数写在不同的py文件中,在主视图中导入分路由视图的模块,并注册蓝图对象,降低各个功能模块的耦合度使程序结构更加简单、清晰.
Flask使用Blueprint让应用实现模块化,在Flask中,Blueprint具有如下属性:
Blueprint
Blueprint
注册到任何一个未使用的URL
下比如 “/
”、“/sample
”或者子域名Blueprint
可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的Blueprint
蓝图就是用于实现单个应用的视图、模板、静态文件的集合。使用蓝图可以实现模块化应用的功能,有些类似于Django 中子应用 app.
蓝图使用起来就像应用当中的子应用一样,可以有自己的视图、模板,静态文件等。多个蓝图之间互不影响,但是它们可以共享应用的全局变量、配置信息等.
使用flask.Blueprint定义蓝图,app.register_blueprint注册蓝图.
下面来具体介绍一下如何使用蓝图.
新建创建一个“user”子目录,并在该目录中新建一个 __init__.py 文件,在文件中,创建用户蓝图对象
1
2
3
|
from
flask
import
Blueprint
user_bp
=
Blueprint(
"user"
, __name__, url_prefix
=
"/user"
)
|
创建了蓝图对象“user_bp”,Blueprint 的第一个参数user指定了这个蓝图的名称,第二个参数指定了该蓝图所在的模块名,这里是当前文件,第三个参数指定其 url 前缀.
然后编写视图文件 views.py,并编写视图函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
from
user
import
user_bp
@user_bp
.route(
'/'
)
def
index():
return
'<h1>Hello, this is user blueprint</h1>'
@user_bp
.route(
'/add'
)
def
add_user():
return
'<h1>add success!</h1>'
······
|
在视图函数上使用了蓝图对象“user_bp”,使用起来类似于 Flask 的 app 对象,使用user_bp.route()指定路由.
然后在 __init__.py 文件末尾添加如下代码,导入视图函数.
1
|
from
.
import
views
|
当然,也可以选择把 __init__.py 文件内创建蓝图对象“user_bp”的代码写在视图文件 views.py 中,__init__.py 文件置空.
最后,在应用主程序 app.py 中注册该蓝图,使用app.register_blueprint()方法即可:
1
|
app.register_blueprint(user_bp)
|
也可以在注册蓝图时指定其 url 前缀.
我们现在已经使用蓝图创建了用户模块,之后再添加其他模块,使用以上步骤添加即可.
到此这篇关于 Flask-蓝图 blueprint详情的文章就介绍到这了,更多相关 Flask 蓝图内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://juejin.cn/post/7033188095302467615 。
最后此篇关于Flask-蓝图 blueprint详情的文章就讲到这里了,如果你想了解更多关于Flask-蓝图 blueprint详情的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试创建一个具有 background-size:100% 100% css 规则的网站。它是位于内容后面的图像,其设计方式无论浏览器窗口的尺寸如何,它仍然可以正常工作。 我认为我的规则(如下所
Camel 2.23.1 Karaf 4.2.4 白羊座蓝图(用于注册所有内容的外部容器) Camel 蓝图(用于 Camel 路线) Camel CXF(用于 rsServer) CXF 核心(用于
我正在尝试将一个 OSGI 蓝图 XML 文件导入到另一个 OSGi 蓝图 XML 文件中。 例如。: 蓝图1.xml: blueprint2.xml:
我尝试做 this Blueprint CSS tutorial ,但无法让任何元素显示在最后 列中。我找到了 this solution ,表示 last 类可能有问题,但它对我不起作用。 有没有其
我使用蓝图作为我的 CSS 框架。我对它自定义选择字段的方式不满意,想恢复默认设置。 这里是 Blueprint 生成的 CSS: select { background-color: #FFFF
近日,Epic 公布了他们为次时代游戏准备的 Unreal 5 游戏引擎,以及一份效果惊艳的 Demo。据称,游戏中的每个资源有一百万个绘制三角面,每一帧有超过十亿个绘制三角面。也就是说,开发者构建
我在理解Blueprint.errorhandler和Blueprint.app_errorhandler之间的区别时遇到了一些麻烦。根据API文档(重点是我的): errorhandler(code
我正在使用 Api Blueprint 为 RESTful 搜索 API 开发 API 文档。我希望能够将过滤器传递给 API,以便我可以进行组装: filter[filtername1]=filte
我正在尝试对从客户那里收到的对象进行分类。 在服务器端,我定义了我的“蓝图”: { // "type1" type: 1, name: String, password: St
我想知道蓝图 CSS 是如何工作的——它是否使用一些标准尺寸(例如 40 像素宽的 24 列,或 48 像素宽的 20 列),通常是否有一个文件指定蓝图设置的细节? 最佳答案 官方quick star
我想使用 blueprint css 框架,但上一个版本发布是在一年多以前。两者都没有在 Github 存储库中提交。维护了吗? 最佳答案 蓝图已经过时了。 试试这个: http://getboots
我已经将 compass 与蓝图一起使用了一段时间,但我不明白的是为什么它会生成所有基本的蓝图 css 类。像这样: #container .span-3 { width: 110px; } #con
我目前有两个 OSGi 包(bundle1 和 bundle2)都通过 EBA 中的蓝图公开服务。在 bundle2 的 blueprint.xml 中,我想从 bundle1 中引用一个服务并将其注
在创建迁移脚本时我可以做这样的事情 Schema::table('books', function(Blueprint $table) { $table->st
所以我对如何使用 Flask 构建页面而不必声明每个 View 感到有点困惑。 我如何制作蓝图以在我要加载的页面上拾取? 假设这些是我的示例页面 templates/ layout.html
我有一个 blueprint.xml 用于部署在 Karaf 3.5.6 下的 Servicemix 下的 camel 应用程序,它看起来有点类似于下面显示的内容:-
我正在研究 Android 布局,我知道有一个新的(呃)东西叫做蓝图。我想知道蓝图 View 提供了什么。 我试过的 1. 添加按钮并通过约束移动它 我看不出两种设计 View (普通和蓝图)之间有什
假设我们在开发过程中开发了一个临时实时数据库,它形成了一个庞大而复杂的结构 json。有没有办法为 Firebase 的实时数据库定义蓝图,以便可以将临时数据库中的结构转移到生产环境,而无需当前临时数
我创建了一个 API,用于提供名为“Thumbnail”(/thumbnails) 的资源 { "name": "toto", "uri": "http://xxx" } 另一方面,我
我需要一些建议。 我的设置中有一些迁移文件。 在其中一些代码中,我看到了以下代码,其余代码中没有,我不确定它的用途 use Illuminate\Database\Schema\Blueprint;
我是一名优秀的程序员,十分优秀!