# -*- encoding: utf-8 -*-
#导入Flask类, 导入重定向,url_for是简易寻址跳转,
from flask import Flask,redirect,url_for,jsonify
#建立Flask对象, Flask函数接收一个参数__name__,它会指向程序所在的包
app = Flask(__name__)
#页面显示,使用Flask路由器,制定网址和控制器, 装饰器的作用是将路由映射到视图函数 index
@app.route('/')
def index():
return "hello world ! "
#区分详情页,给网址增加参数功能使用<变量>,路由方法要和路由器定义的参数一致
@app.route('/不重名/<id>/<name>')
def hello(id,name):
return "你好世界 ! 你的参数是 %s,%s" % (id,name)
#跳转到新页面,使用重定向模块
@app.route('/blank')
def reurl():
return redirect('http://www.baidu.com')
#在当前位置跳转页面,使用url_for()方法实现简易的站内跳转,参数指定路由方法名称
@app.route('/self')
def reurl_in():
return redirect(url_for('index'))
#使用jsonify模块来让网页强转显示json数据
@app.route('/json')
def re_json():
#定义好数据格式
json_dict = {'id':10,'title':'flask的应用','content':'flask的json格式化'}
#使用jsonify来定义好的数据转成json格式,并且返回给前端
return jsonify(json_dict)
#生命周期
#钩子,在第一次请求之前调用
@app.before_first_request
def before_first_request():
print('这是第一次请求之前调用的方法')
#在每一次请求之前调用
@app.before_request
def before_request():
print('每一次请求之前,调用这个方法')
#在请求之后调用的方法,必须传相应参数,才会返会响应内容
@app.after_request
def after_request(response):
print('在请求之后,调用这个方法')
return response
#在请求之后,调用服务器出现的错误信息
@app.teardown_request
def teardown_request(e):
print('服务器出现的错误是 %s ' % str(e))
#使用程序入口,将flask应用启动, Flask应用程序实例的 run 方法 启动 WEB 服务器
if __name__ == "__main__":
app.run(debug=1)