在 w3cschool 的 Flask 教程中,有 URL构建 一章,其中的代码出现了明显错误。本文对其进行修正,并给出测试说明。
from flask import Flask, redirect, url_for
app = Flask(name)
@app.route('/admin')
def hello_admin():
return 'Hello Admin'
@app.route('/guest/')
def hello_guest(guest):
return 'Hello %s as Guest' % guest
@app.route('/user/')
def hello_user(name):
if name =='admin':
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest',guest = name))
if name == 'main':
app.run(debug = True)
无法正常运行。
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/') # 首页
def index():
login_url = url_for('hello_admin')
return redirect(login_url) # 重定向为登录页面
return u'这是首页'
@app.route('/admin/')
def hello_admin():
return 'Hello Admin'
@app.route('/guest/?')
def hello_guest(guest):
return 'Hello %s as Guest' % guest
@app.route('/user/')
def hello_user(name):
if name =='admin':
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest', guest = name))
if __name__ == '__main__':
app.run(debug=True)
自动跳转到函数 hello_admin,即“http://127.0.0.1:5000/admin/”。
匹配“admin”成功,自动跳转到“127.0.0.1:5000/admin/”。
只要 “xxx” 不是 “admin”, 即可跳转至 hello_guest 。