python - Flask - 动态 URL

标签 python url flask

当我使用太多动态 URL 时,我的样式表将停止工作。例如。我的样式表位于/static/css/style.css 下的layout.html 文件中

代码:

#works
@app.route('/<var1>', methods=['blah'])
def someFunc(var1):
    # code

#works
@app.route('/<var1>/<var2>', methods=['blah'])
def someNewFunc(var1, var2):
    # code

#no errors displayed but my stylesheet stops loading
@app.route('/<var1>/<var2>/<var3>', methods=['blah'])
def finalFunc(var1, var2, var3):
    # code

所以我有两个问题。首先,Flask不支持过去两年的动态URL吗?其次,是否有更好的方法来解决这个问题(即是否有我应该遵循的约定)?

最佳答案

问题是你的路线不明确。当浏览器在 /static/css/style.css 请求您的样式表时Flask 找到两条匹配的路由:

  • /static/<path:path>path=css/style.css
  • /<var1>/<var2>/<var3>var1=static , var2=cssvar3=style.css

当多个路由匹配时,Flask 和 Werkzeug 使用的路由算法会优先选择最长的路由,从而使第二个路由获胜。

this question的答案展示了使用自定义路由转换器解决此问题的可能方法。

但我的建议是您更改动态 URL,使其不那么通用。您可以为其添加固定组件,例如 /some-prefix/<var1>/<var2>/<var3> .

关于python - Flask - 动态 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358373/

相关文章:

python - 将 Python 解析为实例列表

url - 链接到静音的youtube-是否有类似 “&volume=0”的东西?

python - 如何在 docker 容器内运行时自动在 API 路由文件中进行 FASTAPI 拾取更改?

docker - 将Flask应用程序部署到Docker-路由/重定向问题

python - 二值化后如何从图像中去除粗糙的线条伪影

python - Tensorflow:Numpy 相当于 tf 批处理和 reshape

python - 为什么Python的timeit()会无限执行?

android - 如何获取 android webview url 以自动检测 https http 和 www?

python - URL 和副作用 (Django)

python - 如何验证并知道一个 URL 是否是 Google Docs URL? | python , flask |