当前位置: 首页 > 面试题库 >

Flask的网址路由中是否支持正则表达式?

端木高邈
2023-03-14
问题内容

我知道Flask具有int,float和path转换器,但是我们正在开发的应用程序的URL中具有更复杂的模式。

有没有办法像Django一样使用正则表达式?


问题答案:

即使Armin用可接受的答案击败了我,我仍然认为我会展示一个简短的示例,说明如何在Flask中实现正则表达式匹配器,以防万一有人想要如何完成此工作的示例。

from flask import Flask
from werkzeug.routing import BaseConverter

app = Flask(__name__)

class RegexConverter(BaseConverter):
    def __init__(self, url_map, *items):
        super(RegexConverter, self).__init__(url_map)
        self.regex = items[0]


app.url_map.converters['regex'] = RegexConverter

@app.route('/<regex("[abcABC0-9]{4,6}"):uid>-<slug>/')
def example(uid, slug):
    return "uid: %s, slug: %s" % (uid, slug)


if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

该URL应返回200:http:// localhost:5000 / abc0-foo /

该网址应返回404:http:// localhost:5000 / abcd-foo /



 类似资料:
  • 本文向大家介绍asp.net中匹配URL网址的正则表达式,包括了asp.net中匹配URL网址的正则表达式的使用技巧和注意事项,需要的朋友参考一下 %<本人做的是asp.net的项目,内容是阻止一个文本框中的某些URL>% 首先,正则表达式: 关于该正则表达式的说明: ①:该正则表达式匹配的字符串必须以http://、https://、ftp://开头; ②:该正则表达式能匹配URL或者IP地址;

  • 问题内容: 在尝试学习更多有关正则表达式的知识时,一个教程建议你可以使用b来匹配单词边界。但是,Python解释器中的以下代码片段无法按预期工作: 如果有任何匹配项,它应该是一个匹配对象,但它是。 不支持该表达式吗?还是我使用错误? 问题答案: 你为什么不尝试 输出: 还忘了提及,你应该在代码中使用原始字符串

  • 问题内容: 我对正则表达式不太满意,因此我想确保自己正确执行了此操作。假设我有两条非常相似的路线,和。我想创建一个匹配这两个页面的路由。 这是正确的方法吗?现在,我只是在创建两条单独的路线。 问题答案: 作品

  • 问题内容: SQLite是否支持公用表表达式? 我想运行这样的查询: 问题答案: 从Sqlite版本3.8.3开始,SQLite支持公用表表达式。 变更记录 指示

  • 我有一个带两个可能输出的字符串,它将被<代码>

  • 显然,json 架构不喜欢这个正则表达式: https://regex101.com/r/qsyUoQ/1 我收到一个错误:。此错误意味着我使用的正则表达式模式根据json模式无效。 我的正则表达式似乎对大多数其他解析器都有效。json模式支持正面和负面的前瞻性和捕获组:https://json-schema.org/understanding-json-schema/reference/regu