Flask - app.route参数

app.route可以传递的参数

  1. methods = [ ]:
  • 当前url地址,允许访问的请求方式 类型为可迭代对象,允许八种http请求方式
@app.route("/info", methods=["GET", "POST"])
def student_info():
    stu_id = int(request.args["id"])
    return f"Hello Old boy {stu_id}"  
  1. endpoint = “ ”
  • 路由Mapping地址对应视图函数,相当于给函数起个别名
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}"  
  1. strict_slashes=True
  • url地址结尾符“ / ”的控制False: 无论结尾 “ / ” 是否存在均可以访问, True: 结尾不允许是“ / ”
# 访问地址 : /info 
@app.route("/info", strict_slashes=True)
def student_info():
    return "Hello Old boy info"# 访问地址 : /infos  or  /infos/
@app.route("/infos", strict_slashes=False)
def student_infos():
    return "Hello Old boy infos"
  1. defaults={}
  • 视图函数的参数默认值
from flask import url_for
​
@app.route("/info", methods=["GET", "POST"], endpoint="r_info", defaults={"nid": 100})
def student_info(nid):
    print(url_for("r_info"))  # /info
    # stu_id = int(request.args["id"])
    print(nid)  # 100
    return f"Hello Old boy {nid}"
  1. redirect_to=“/index”
  • url地址重定向, 浏览器的请求返回为308

  • 301和308都是永久重定向, 区别在于

    • 301 在重定向时允许改变请求方法
    • 308 在重定向时不允许改变请求方法,比如post请求被重定向时,redirect_to的url也为post请求方式,
    • 而301就有可能变成了get请求
# 访问地址 : /info 浏览器跳转至 /infos
@app.route("/info", strict_slashes=True, redirect_to="/infos")
def student_info():
    return "Hello Old boy info"
​
@app.route("/infos", strict_slashes=False)
def student_infos():
    return "Hello Old boy infos"
  1. subdomain:
  • 子域名前缀, subdoadmin=“car”, 这样可以得到car.xxx.com 不过还需要配置
app.config["SERVER_NAME"] = "xxx.com"

app.config["SERVER_NAME"] = " xxx.com"
​
@app.route("/info",subdomain="car")
def student_info():
    return "Hello Old boy info"
# 访问地址为:  car.xxx.com/info
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值