flaskblueprint的简单介绍

本篇文章给大家谈谈flaskblueprint,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表