'URL parameter in flask app is showing up 1 form submission late

I have a flask app that I am trying to append a url parameter to after a form submission. For example, I have a date input as a form, and if I selected 2022-02-17 and pressed the button to submit, I would want the url to then append ?date=2022-02-17. My problem is the its always 1 behind. So on first submit, it is only ?date=, and then if I chose another date that isn't 2022-02-17, the url would then update to ?date=2022-02-17. I have a print to make sure the date is being correctly passed into the handler function for that page as well.

Here is a jinja snippet of the form:

<div class="container">
<p>{{ search_date }}</p>
<form action={{ url_for('past_releases', date=search_date) }} method="POST">
  <div class="input-group justify-content-center">
    <div class="form-outline">
      <input class="form-control" type="date" id="searchdate" name="searchdate">
    </div>
    <button type="submit" class="btn btn-primary">
      <i class="fa fa-search"></i>
    </button>
  </div>
</form>
</div>

and here is the python function for handling that page:

@app.route("/past-releases", methods=["GET", "POST"])
def past_releases():
    """
    Search for past releases' info, based on date.
    """
    search_date = None
    if request.method == "GET" and request.args.get("date"):
        search_date = request.args.get("date")
    elif request.method == "POST":
        search_date = request.form["searchdate"]
    #     # we use a try here for when someone might click search on the placeholder
    #     # date of "mm/dd/yyyy"
    print(search_date)
    if search_date:
        try:
            date_selcted = dateutil.parser.parse(search_date).strftime("%B %d, %Y")
        except ParserError:
            return render_template("past_releases.jinja")

        pipelines_and_tasks = get_pipeline_runs_by_date(search_date)
        return render_template(
            "past_releases.jinja",
            date_selected=date_selcted,
            pipelines_and_tasks=pipelines_and_tasks,
            search_date=search_date,
        )

    return render_template("past_releases.jinja")


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source