flask-重定向

# coding=utf-8

from config import Config
from flask import Flask,jsonify,abort,redirect,url_for

app = Flask(__name__)
app.config.from_object(Config)
# 返回json数据
import json
@app.route('/json')
def demo1():
    my_dict = {"name":"tiantian","age":"10"}
    # return json.dumps(my_dict)  
    return jsonify(my_dict)
# 返回状态码,通过return直接返回,可以返回不符合http协议的状态码,主要为了实现前后端的数据交互
@app.route('/status')
def demo2():
    return 'demo2:',405
#以上在浏览器中输入127.0.0.1:5000/status,页面中出现demo2: 在检查源代码中可以看见状态码为405
# 异常处理,abort,类似于python中raise语句,作用是处理异常信息,只能抛出符合http协议的状态码,abort只要捕获异常,后面代码不执行
@app.route('/')
def demo3():
    abort(404)
    return 'demo2:'403

@自定义错误信息 errorhandler会捕获abort函数抛出的异常状态码
@app.errorhandler(404)
def demo4(e):
    return '页面找不到了,请访问某某页面'

# 重定向,当项目目录或者文件发生改变的情况下,需要使用重定向 www.360buy.com
# 当活动页面不存在时,不建议直接使用redirect定向到具体的url,建议使用动态的url
# 反向解析
@app.route('/redirect')
def demo5():
    return redirect('http://www.baidu.com')
# 以上当在浏览器中输入127.0.0.1:5000/redirect 页面跳转到百度
"""
或者以上这样写
@app.route('/redirect')
def demo5():
    a = 'http://www.baidu.com'
    return redirect(a)

"""

#使用url_for,接受的参数是视图函数名
@app.route('/')
def demo6():
    return redirect(url_for('demo5'))
# 以上当在浏览器中输入127.0.0.1:5000 ,页面可以跳转到百度,最好用url_for



if __name__=='__main__':

    app.run()

同目录下创建同级文件config.py

class Config:
    DEBUG = True
 SECRET_KEY='b1IHqfGBJbdmANeA3Ch/kEjd1jVw7EWifvdPUC8CXyu1+KsAKXnh8boLtjpwAoIOCLM='

猜你喜欢

转载自my.oschina.net/u/3753872/blog/1648229