从 Flask 的 url_for 中获取 URL 中的奇怪工件

Getting strange artifacts in URL from Flask's url_for

我似乎找不到关于这个特定问题的任何信息。我在 html 页面中使用 url_for,它在查询字符串之前返回一些奇怪的东西。是什么导致了以下行为,我怎样才能让实际的 URL 与预期相符?

来电:href="{{ url_for('add_movie', tmdb_id=movie['movie_id']) }}"

预期URL:'/add?tmdb_id=1234'

实际URL:'/add/%7Btmdb_id%7D?tmdb_id=1234'(奇怪的粗体部分)

电影列表是通过调用 API 的函数填充的。我验证了从 API 调用返回的 id 的列表看起来不错。

Python:

class TmdbMovie:
    def __init__(self, tmdb_id, title, release_date):
        self.movie_id = tmdb_id
        self.title = title
        self.release_date = release_date

@app.route('/add/{tmdb_id}', methods=['POST'])
def add_movie(tmdb_id):

HTML:

{% for movie in movies %}
  <p>
    <a href="{{ url_for('add_movie', tmdb_id=movie['movie_id']) }}"> {{ movie['title'] }} - {{ movie['release_date'] }}</a>
  </p>
{% endfor %}

在路由注册中,必须使用angular brackets作为参数:

@app.route('/add/<tmdb_id>', methods=['POST'])
def add_movie(tmdb_id):

%7B%7D字符串是URL-encoded{}括号。