当前位置: 首页 > 知识库问答 >
问题:

烧瓶可以有可选的URL参数吗?

锺宜
2023-03-14

是否可以直接声明一个烧瓶URL可选参数?

目前,我正在按照以下方式进行:

@user.route('/<userId>')
@user.route('/<userId>/<username>')
def show(userId, username=None):
    pass

我怎么能直接说username是可选的?

共有3个答案

亢仰岳
2023-03-14

如果您像我一样使用Flask-restful,也可以这样使用:

api.add_resource(UserAPI, '/<userId>', '/<userId>/<username>', endpoint = 'user')

然后在资源类中:

class UserAPI(Resource):

  def get(self, userId, username=None):
    pass
敖永丰
2023-03-14

与几个月前制作的Audrius几乎相同,但您可能会发现函数头中的默认值更具可读性—就像您在python中习惯的那样:

@app.route('/<user_id>')
@app.route('/<user_id>/<username>')
def show(user_id, username='Anonymous'):
    return user_id + ':' + username
公孙棋
2023-03-14

另一种方法是写作

@user.route('/<user_id>', defaults={'username': None})
@user.route('/<user_id>/<username>')
def show(user_id, username):
    pass

但是我想您应该编写一条路由并将username标记为可选?如果是这样的话,我认为这是不可能的。

 类似资料:
  • 我可以访问或,如果我启动调试器,我可以看到。 如果我尝试或我得到了404。 为什么会这样?路由规则有什么问题吗?

  • 问题内容: 是否可以直接声明Flask URL可选参数? 目前,我正在按照以下方式进行: 我如何直接说这是可选的? 问题答案: 另一种方法是写 但是我想你想编写一条路由并将其标记为可选?如果是这样,我认为不可能。

  • 问题内容: 我有一个像这样的Django URL: views.py: 问题是我希望参数是可选的。 我希望并且成为同等有效的URL模式,以便如果 通过,那么我可以使用它。 就目前而言,访问不带参数的URL时会得到404 。 问题答案: 有几种方法。 一种是在正则表达式中使用非捕获组:使正则 表达式Django URL令牌为可选 另一种更容易遵循的方法是拥有多个符合你需求的规则,所有规则都指向同一视

  • 问题内容: 我可以设置带有可选参数的路由(相同的模板和控制器,但是如果某些参数不存在,则应将其忽略)? 因此,只编写一个规则,而不是编写以下两个规则? 这样的事情([此参数是可选的]) 我在他们的文档中找不到任何内容。 问题答案: 看来Angular现在已对此提供支持。 从最新的(v1.2.0)文档中: 可以包含带问号()的可选命名组

  • 问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask- principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask- principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会

  • 问题内容: 我希望它能够仅使用lira_cbt作为参数(执行x),或者同时使用lira_cbt和eur_hedge(执行y)运行。可以使用sys.argv实现吗? 问题答案: 只需使用长度