企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
使用蓝图的 `route()` 方法,通过添加装饰器的形式,就可以把一个函数绑定到对应的 URL 上。 >[info]控制器一般都叫做视图(view),由于个人喜好原因,我还是称之为控制器,大家可以叫做视图 控制器的所有操作方法都是 `return` 返回而不是直接输出。返回只接受 `string`,`dict`,`tuple`,`Response instance`,`WSGI callable` 的类型。 **静态路由** ``` @bp.route('/', methods=['GET']) def index(): return 'hello flask' ``` 为 `app/api_1_0/controller` 下的 `index.py` 控制器绑定路由 (我们以 `api_1_0` 模块为例进行演示) ``` #!/usr/bin/env python3 # -*- encoding: utf-8 -*- from app.api_1_0 import bp @bp.route('/', methods=['GET']) def index(): return 'hello flask' ``` 在终端下进入 `flask_demo` 目录,并激活虚拟环境 ``` # 以开发模式运行 (.venv) root@airvip:~/python_app/flask-demo# export FLASK_ENV=development # 指定入口文件 (.venv) root@airvip:~/python_app/flask-demo# export FLASK_APP=manage.py # 启动项目 (.venv) root@airvip:~/python_app/flask-demo# flask run * Serving Flask app "manage.py" (lazy loading) * Environment: development * Debug mode: on * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 140-781-151 ``` 此时在浏览器访问 `http://127.0.0.1:5000/api/v1.0/` 即可得到如下页面 ![flask_index](https://img.kancloud.cn/3f/92/3f92a2fbee07a5240a246b6ea4695471_475x127.png) **练习** 为 `app/api_1_0/controller` 下的 `passport.py` 控制器绑定路由 ``` #!/usr/bin/env python3 # -*- encoding: utf-8 -*- from app.api_1_0 import bp @bp.route('/register', methods=['POST']) def register(): pass @bp.route('/login', methods=['POST']) def login(): pass @bp.route('/logout', methods=['DELETE']) def logout(): pass ```