---
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
```