视图函数返回响应,有三种方式

  • 使用,jsonify,生成json数据响应体
  • 使用,redirect,url_for,生成文本响应体
  • 直接响应,字符串,自定义状态码,返回文本响应体

一.使用jsonify,生成json数据响应体

# 生成json数据响应体
@app.route('/demo4')
def demo4():
    json_dict = {
        "user_id": 10,
        "user_name": "laowang"
    }
    return jsonify(json_dict)

二.使用redirect,url_for,生成文本响应体

  • redirect重定向到 黑马 官网
    格式: redirect('地址');
    地址: 可以是外链地址, 可以是视图函数地址
# 重定向
@app.route('/demo5')
def demo5():
    return redirect('http://www.itheima.com')
  • url_for反解析:通过视图函数的名称,返回地址
    格式: url_for('视图函数名',key=value)
    提示: url_for经常配合redirect使用,可以传递参数 ```python @app.route('/demo1') def demo1(): return 'demo1'

重定向

@app.route('/demo5') def demo5(): return redirect(url_for('demo1'))


- 重定向到视图函数,携带参数演示
```python
# 路由传递参数
@app.route('/user/<int:user_id>')
def user_info(user_id):
    return 'hello %d' % user_id

# 重定向
@app.route('/demo5')
def demo5():
    # 使用 url_for 生成指定视图函数所对应的 url
    return redirect(url_for('user_info', user_id=100))

三.返回字符串,自定义状态码,返回文本响应体

  • 在 Flask 中,可以很方便的返回自定义状态码,以实现不符合 http 协议的状态码,例如:status code: 666
    @app.route('/demo6')
    def demo6():
      return '状态码为666', 666