蓝图:是为了处理模块的拆分。而不是视图函数级别的拆分。
- 非处理试图函数级别的拆分
- 造成url冗长。
蓝图的使用:
在试图函数部分:
from flask import Blueprint
book = Blueprint(“book”, --name–)
接下来拿book替代app就可以了
在app和蓝图连接时
app.register_blueprints(蓝图),连接成功。
所以我们要自制红图
…
class Redprint:
# 传入红图的名字
def __init__(self, name):
self.name = name
self.mound = []
# 装饰器注册实现
def route(self, rule, **options):
def decorator(f):
self.mound.append((f, rule, options))
return f
return decorator
# 实现register将红图与蓝图连接起来
def register(self, bp, url_prefix=None):
if url_prefix is None:
url_prefix= "/" + self.name
for f, rule, options in self.mound:
endpoint = options.pop("endpoint", f.__name__)
bp.add_url_rule(url_prefix + rule, endpoint, f, **options)