Blueprint的route装饰器
时间: 2023-07-22 20:01:14 浏览: 46
在 Flask 框架中,蓝图(Blueprint)提供了与应用程序相似的路由功能。你可以使用 `route` 装饰器来定义在蓝图中的路由。
例如,假设你有一个名为 `blog_bp` 的蓝图对象,你可以使用 `route` 装饰器来定义路由:
```python
from flask import Blueprint
blog_bp = Blueprint('blog', __name__)
@blog_bp.route('/')
def index():
return 'Welcome to the blog!'
@blog_bp.route('/post/<int:post_id>')
def show_post(post_id):
return f'Showing post {post_id}'
```
在上面的例子中,我们定义了两个路由,一个是根路由 `/`,另一个是带有参数的路由 `/post/<int:post_id>`。这些路由函数被装饰为蓝图对象的一部分,因此在应用程序中注册蓝图后,这些路由将能够通过蓝图访问。
要在应用程序中注册蓝图并使用这些路由,你需要在应用程序的工厂函数或者其他合适的地方调用 `app.register_blueprint()` 方法:
```python
from flask import Flask
app = Flask(__name__)
app.register_blueprint(blog_bp, url_prefix='/blog')
```
以上代码将 `blog_bp` 蓝图注册到应用程序中,并且指定了 URL 前缀为 `/blog`。这样,访问 `/blog/` 会触发 `index()` 函数,访问 `/blog/post/1` 会触发 `show_post()` 函数。
总结来说,`route` 装饰器用于定义蓝图中的路由,而在应用程序中注册蓝图后,这些路由将成为应用程序的一部分。