flaskblueprint的简单介绍
本篇文章给大家谈谈flaskblueprint,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、flask接口中调用接口?
- 2、如何理解Flask的Blueprint
- 3、Flask组件化开发:Blueprint(蓝图)
- 4、在flask中,怎样在 blueprint 中调用配置文件中的参数
- 5、如何理解flask中的蓝本
- 6、ue中blueprint文件夹中一般乘方是什么类型文件
flask接口中调用接口?
需求 在func1里调斗颂用func2函数,函数如下,func1 func2可能在同一个文件,也可能在不同文件,也可能位于不同的flask blueprint模块中:
@route("/url1")
def func1()
#To do...
@route("/url2")
def func2():
#To do...
想在func2里面调用func1,使用python requests库握销者,在func2里面发起post请求
其它做法博客链接:
我的做法
import requests
@route("/url2")
def func2():
requests.post("", json={key: value})
验段薯证有效
[img]如何理解Flask的Blueprint
blueprint 用于处理有相对段州握独立功能的模握庆块。
比如一个博客,有前台和后台部分。
可以把前台分到名为 blog 的 blueprint 上面
然后把 后台分到名为 admin 的 blueprint 上。
blueprint 可以分配独立的 url 前迹御缀
比如
`admin=/admin`
`blog=/`
Flask组件化开发:Blueprint(蓝图)
我们在管理路由的时候,是直接在app对象上进行的路由设置的,像下面这样:
显然,如果所有的路由都直接在app应用对象上直接注册,不仅使我们的程序结构十分混乱,而且大大增加了程序的系统内存消耗。至于如何节约,先卖个关子。
那么使用蓝图进行程序路由的模块化管理是如何做到的呢?
可以看到在 app 文件夹下有三个文件夹 main 、 auth 以及 api 内含有视图函数。如果不太清楚flask项目结构的,可以转 Flask项目结构
这三个文件夹中的 init .py都是进行蓝图核穗橘的定义的。举 main 文件夹下的例子
在应用对象app上 注册 蓝图对象。
第一个参数是 蓝图对象
随后的都是 可选参数
1.static_folder :
和应用对象不同,蓝图对象创建时不会默认注册静态目录的路由。需要我们在 创建时指定static_folder 参数。如图中我们设置参数为 ‘static’ ,也就是项目结构中的 static 文件夹。
这样我们可以使用地址 /static/main/layout.css 访问static目录下的css、js、image文件了
2.url_prefix
默认的值为 '/' ######用一个demo.py来解释吧( 这个demo也要在虚拟环境下运行 )
显而易见,这个参数就是增加相对路径的前缀的
当然也可以不用直接在渲染成模板时自己加上。
中间穿插了这么族灶多,再看一下main/views.py里边的内容吧
这个例子就是直接在views.py里边直接加url前缀。改团
这个文件下就是在蓝图对象上进行操作即创建路由 ,通过 render_template() 方法将页面渲染出来。
我一般习惯将前边所有的工作做完之后再去前端HTML文件中去设置路由的跳转。例如:
url_for是通过endpoint查询url地址,然后找视图函数
根据个人的理解来说一下蓝图的运行机制:
在flask中,怎样在 blueprint 中调用配置文件中的参数
test
--app
--__init__.py
--home.py
--instance
--config.py
--run.py
# app/__init__.py
from flask import Flask
from .home import home
def create_app():
app = Flask(__name__, instance_relative_config=True)
app.config.from_pyfile('config.py')
app.register_blueprint(home)
return app
# app/home.py
from flask import Blueprint, current_app
home = Blueprint('home', __name__)
@home.route('/隐敏')
def helle():
return 'hello home '+current_app.config['TEST'困档]
# instance/config.py
# capitalize
DEBUG=True
TEST='汪携乱wo'
# run.py
from app import create_app
app = create_app()
app.run(debug=app.config['DEBUG'])
如何理解flask中的蓝本
当app在函数中创建,而非在全局创建时,视图函数就型毁纳余销无法使用到app.route装饰器,所以引入蓝本
暂时把它理解为路由的替代吧
使用方式是
1. 在包或者模块中创建蓝本 xxx = Blueprint('卜没main', __name__)
2. 在最后一行引入from . import aa, bb(不懂)
3. 在aa.py和bb.py中分别引入xxx进行配置路由
4. 各种使用中要注意蓝本其实也是一个命名空间。
ue中blueprint文件夹中一般乘方是什么类型文件
简单来说,Blueprint 是一个存储操作方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求。
在蓝图被注册到应用之后,所要执行的操作的集合。当分燃氏配请求时, Flask 会把蓝图和视图函数关联起来,并生成两个端点之前的 URL 。
Flask使用Blueprint让应用实现模块化,在Flask中,Blueprint具有如下属性:
一个应用可以具有多个Blueprint
可以将一个皮厅散Blueprint注册到任何一个未使用的URL下比如 “/”、“/sample”或者子域名
在一个应用中,一个模块可以注册多次
Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的
在一个应用初始化时,就应该要注册需要使用的伏拆Blueprint
但是一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中。
关于flaskblueprint和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。