Flask基础入门五--蓝图

蓝图

 

蓝图实现了应用的模块化,使用蓝图让应用层次清晰,开发者可以更容易的开发和维护项目。蓝图通常作用于相同的URL前缀,比如/user/:id、/user/profile这样的地址,都以/user开头,那么它们就可以放在一个模块中。

比如,在你的蓝图文件(user.py)中:

from flask import Blueprint

bp=Blueprint(‘user’,__name__,url_prefix=’/user’)

@bp.route(‘/’)

def index():
    return “user index page.”

每个模块都会暴露一个全局变量bp。在主程序中:

from flask import Flask

from user import bp

 

app=Flask(__name__)

app.register_blueprint(bp)

 

if __name__==’__main__’:

app.run(host=’0.0.0.0’,port=9000)

使用register_blueprint注册模块,如果想去掉模块只需要去掉对应的注册语句即可。

其中,url_prefix是必选参数,这个参数必须以”/”开头,否则就会报错。

添加了这个参数之后,所有蓝图的路由都会以这个路由开头进行访问。

比如上例中,使用localhost:9000/user/

最终返回会返回 user index page.

相当于访问了@bp.route(‘/’)。

 

一般在项目中都是将蓝图放在一个单独的文件夹中,然后视图的注册类似网站的初始化操作。

 

静态文件

 

蓝图的第三个参数是static_folder。这个参数用来指定蓝图的静态文件所在的文件夹,它可以是一个绝对路径,也可以是相对路径。

bp=Blueprint(‘user’,__name__,static_folder=’static’)

默认情况下,路径最右端的部分是在URL中暴露的部分。这可以通过static_url_path来改变。上例中的文件夹为名称static,那么URL应该是蓝图的url_prefix加上/static。如果蓝图注册的前缀为/user,那么静态文件URL就是/user/static。

 

前端在使用时,是用blueprint_name.static。使用url_for()来生成其URL:

url_for(‘user.static’,filename=’style.css’)

如果没有url_prefix,那么不可能访问蓝图的静态文件夹。在这种情况下,URL应该是/static。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值