--- title: flask基础 date: 2021-11-19 --- # 依赖 ```bash flask python-dotenv watchdog flask-wtf flask-cors flask-sqlalchemy ``` ### 视图函数 视图函数最多可以返回由三个元素组成的元组:响应主体、状态码、首部字段。 #### 1. 重定向 ```python from flask import Flask, redirect, url_for @app.route('/hi') def hi(): ... return redirect(url_for('hello')) @app.route('/hello') def hello(): ... ``` #### 2. 错误响应 ```python from flask import Flask, abort @app.route('/404') def not_found(): abort(404) ``` ### 响应格式 ```python from flask import make_response @app.route('/foo') def foo(): response = make_response('Hello, World!') response.mimetype = 'text/plain' return response ``` ### 上下文全局变量 两种上下文 - 程序上下文 - 请求上下文 四个上下文全局变量 - current_app - g - request - session # 启动服务 旧的启动开发服务方式为使用`app.run()`方法,目前已不推荐使用(deprecated)。 ```bash # 打开当前目录下的app.py或者wsgi.py, 启动app或application的程序实例 flask run # 打开命令行调试窗口 flask shell # 如果程序主模块不是app.py,若为hello.py,则需要设置环境变量FLASK_APP, 将程序主模块名赋值 export FLASK_APP=hello #Linux set FLASK_APP=hello #Windows ```