为什么 Flask 在到达 '?' 后立即停止接受动态 url 的输入?

Why does Flask stop taking input for a dynamic url as soon as it reaches a '?'?

我正在尝试构建一个网络应用程序,该应用程序将 youtube 手表 ID 或其他内容作为参数,例如:'watch?v=[something random here]'。 每当我尝试使用 < > 符号将其作为变量获取时,在 @app.route 装饰器中,变量存储的值将停在 '?' 处。 (独家的)。有什么办法可以解决这个问题吗?我想将整个 'watch?v=[random]' 放入我的变量中。

我不确定您具体指的是什么,添加一些代码会有所帮助。但是当涉及到获取查询字符串时,你想查看 flask 中的 request 对象,它可以 return 关于 URL 的信息。希望这对您有所帮助,并在可能的情况下添加一些代码。

您对自己的问题有点困惑。无论如何,有两种方法。如果你愿意接受来自路由的动态值,你可以使用来自烧瓶的请求。 这是一个例子:

解决方案 1

from flask import request
@app.route("/watch")
def home():
    page = request.args.get('v')
    # use the 'v' in what you want to do
    return # what you want

解决方案 2 除此以外, 这是你可以做的:

from package.file import Something
@app.route("/post/<int:post_id>")
def post(post_id):
    post = Something.query.get_or_404(post_id)
    return render_template('post.html', title=post.title, post=post)

以上部分定义了特定的输入。路由的动态部分不以“?”开头

根据你的困惑猜测,第一个解决方案应该适合你!