一: @app.route() 装饰器中的参数
#1: methods : 当前 url 地址,允许访问的请求方式
@app.route("/info", methods=["GET", "POST"])
#:2:endpoint : 反向url地址,默认为视图函数名 (url_for)
from flask import url_for #反向解析用的参数
@app.route("/info", methods=["GET", "POST"], endpoint="r_info")
def student_info():
print(url_for("r_info")) # /info
stu_id = int(request.args["id"])
return f"Hello Old boy {stu_id}" # Python3.6的新特性 f"{变量名}"
# defaults : 视图函数的参数默认值{"nid":1}
from flask import url_for #反向链接 @app.route("/kbs/", methods=["GET", "POST"], endpoint="r_info", defaults={"nid": 100}) def student_info(nid): print(url_for("r_info")) # /kbs print(nid) # 100 return 'hello world'
#strict_slashes : url地址结尾符"/"的控制 False : 无论结尾 "/" 是否存在均可以访问 , True : 结尾必须不能是 "/"
# 访问地址 : /info
@app.route("/info", strict_slashes=True)
def student_info():
return "Hello info"
# 访问地址 : /infos or /infos/
@app.route("/infos", strict_slashes=False)
def student_infos():
return "Hello infos"
#redirect_to : url地址重定向
# 访问地址 : /info 浏览器跳转至 /infos ,不会进去下面视图函数
@app.route("/info", strict_slashes=True, redirect_to="/infos")
def student_info():
return "Hello info"
二:为了给 URL 增加变量的部分,你需要把一些特定的字段标记成 <variable_name>
@app.route('/user/<something>') #http://127.0.0.1:5000/user/pengwei def show_user_profile(something): # show the user profile for that user return 'User %s' % something @app.route('/post/<int:post_id>') #http://127.0.0.1:5000/post/100 def show_post(post_id): # show the post with the given id, the id is an integer return 'Post %d' % post_id