flask的路由配置

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一: @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

 

               

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值