一: @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
本文介绍了Flask框架中路由配置的细节,包括`@app.route()`装饰器的使用,如methods参数定义请求方式,endpoint参数用于反向URL,defaults设置默认参数值,strict_slashes控制URL末尾斜线,以及redirect_to实现URL重定向。同时提到了如何在URL中添加变量部分。
1040

被折叠的 条评论
为什么被折叠?



