Flask是一个使用Python编写的轻量级Web应用框架。它具有简单而强大的功能,可以帮助开发者快速构建和部署Web应用。Flask中最重要的一个概念就是蓝图(Blueprints)。
蓝图是Flask中一个非常重要的概念,它可以帮助开发者将复杂的应用分解成多个独立的、可重用的部分。它允许开发者将应用分割成不同的部分,并将这些部分组合在一起以形成完整的应用。
from flask import Blueprint # 创建一个 Blueprint 对象 bp = Blueprint('my_blueprint', __name__) @bp.route('/') def index(): return 'Hello World!'
上面代码中,我们使用 Flask 提供的 Blueprint 类来创建一个名为 my_blueprint 的蓝图对象。然后使用 @bp.route 装饰器来注册一个 URL 路径,并定义相应的处理函数 index()。这样就定义了一个 URL 路径 / ,当浏览器请求该 URL 时,就会执行 index() 函数,并返回字符串 “Hello World!”。
在 Flask 应用中,通常会有多个不同功能的控制器(Controller)文件(如 user.py、post.py 等文件)。如果不使用蓝图来管理这些文件中定义的函数和 URL 路径时,代码会非常冗余而难以维护。而使用 Flask 的蓝图机制时,可以将不同功能的函数和 URL 路径注册在不同的蓝图对象上面(如 user_bp、post_bp 等对象上面),然后在 Flask 应用中注册这些对象即可。
# user.py 文件 from flask import Blueprint user_bp = Blueprint('user', __name__) @user_bp.route('/login') def login(): # 处理 /login 路径请求 ... return 'Login Page' # post.py 文件 from flask import Blueprint post_bp = Blueprint('post', __name__) @post_bp.route('/create') def create(): # 处理 /create 路径请求 ... return 'Create Page' # app.py 文件 from flask import Flask from user import user_bp from post import post_bp app = Flask(__name__) app.register_blueprint(user_bp) app.register_blueprint(post_bp)
上面代码中我们在 user.py 和 post.py 文件中分别定义了 user_bp 和 post_bp 这两个 Blueprints 对象,然后在 app.py 文件法中法法法法法法法法将这两个 Blueprints 对象泊物化app对应app,最后就可以通过 http://localhost:5000/login 和 http://localhost:5000/create 来请求相应处理函数 login() 和 create() 的执衅衅衅衅衅衅衅衅衅衅衅衅衅衅.
当你想要从一个页面链接到另一个页面,你可以像通常一个样使用 url_for()
函数,只是你要在 URL 的末端加上蓝图的名称和一个点( .
)作为前缀:
url_for("admin.index")
此外,如果你在一个蓝图的视图函数或是模板中想要从链接到同一蓝图下另一个端点, 你可以通过对端点只加上一个点作为前缀来使用相对的重定向:
url_for(".index")
这个案例中,它实际上链接到 admin.index
,假如请求被分派到任何其它的 admin 蓝图端点。
当Django找不到所匹配的请求URL时,或引发了异常时,Django会调用一个错误处理视图。这些情况发生时使用的视图通过4个变量指定。...
编写Web应用程序可能很单调,因为我们一次又一次地重复某些模式。Django试图在模型层和模板层消除一些单调,但Web开发人员也在视...
为表格申明表空间表空间可被指定给特定模型生成的数据表,通过在该模型的 class Meta 中提供 db_tablespace选项。该选项也...
在模型中添加自定义方法会给你的对象提供自定义的“行级”操作能力。与之对应的是类 Manager的方法意在提供“表级”的操...