Flask之重定向
重定向顾名思义,即页面跳转,主要是将一个页面跳转到正确的页面上
这里一共介绍两种重定向,一个为301:永久转移;一个为302:临时转移。
这里我们需要使用flask框架里的redirect,我们从flask中将redirect包含在项目了,然后我们便可以调用redirect这个函数来实现跳转功能,函数一共包含三个参数,第一个为跳转的地址,第二为跳转的参数(302/301,默认302临时跳转),第三个参数为code(就是之前的跳转码)。我们可以编写如下简单的代码来实现简单的跳转。
代码:
# -*- encoding = UTF - 8
from flask import Flask,redirect
app = Flask(__name__)
@app.route('/')
def index():
return 'hello'
@app.route('/newpath')
def newpath():
return 'newpath'
@app.route('/re/<int:code>')
def redirect_demo(code):
return redirect('/newpath',code=code)
if __name__ == '__main__':
app.run(debug=True)
运行结果:
我们在浏览器输入127.0.0.1:5000/re/302,然后我们会发现页面跳到了:
我们可以通过调试查看刚刚的页面跳转情况:
是的,确实是从127.0.0.1:5000/re/302跳转到127.0.0.1:5000/newpath 中去的
那么我们再分析log的显示,很明显对于临时跳转,每一次我打开127.0.0.1:5000/re/302,浏览器都会跳转一次那么如果是用就跳转呢,我们可以试试301。
结果就便是浏览器记录下这次的跳转,并在下次我们访问这个页面时,浏览器会自动跳转到对应的页面。
Flask之Error
error是为了解决用户进入到错误的或者不存在的页面跳转到一个专门的页面显示错误信息
这里我们用404来举例子
首先我们构建一个not_found的静态页面:
然后我们在主要部分编写函数:
# -*- encoding=UTF-8
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def index():
return 'hello'
@app.errorhandler(404)
def page_not_found(error):
print error
return render_template('not_found.html') ,404
if __name__ == '__main__':
这段代码中我们使用了flask框架的render_template,这个函数的作用是将读取一个静态页面的信息,即加载静态页面,当然,静态页面必须存储在tempaltes的目录下,否则无法准确读取。
再看看@app.errorhandler(404),这个作用是将所有的404的错误都进行下面的函数的处理,我们来看看效果图:
我们输入一个不存在的网址,结果的确显示了not_found的静态页面的内容了。