-2
 <form method = "POST">
         <div class=" col-lg-4 col-lg-4 col-lg-4 col-lg-4">
            <div class="box">
                <input type="text" name="image-url" placeholder="Image URL Link"style="color:black" required="required" value = "new"/>
              <textarea cols=80 rows=4 style="color:black" name = "description" placeholder="Place your description here" value = "new"></textarea>
                <button type="submit">Upload</button>
                </div>
             </div>
            </form>                
    {% for i in range(amount_of_images) %}
         <div class=" col-lg-4 col-lg-4 col-lg-4 col-lg-4">
              <div class="box">
                <img src="{{image[i]}}" alt="view" width = "300" height = "300"/>
            <form method = "POST">
                <textarea cols=80 rows=4 style="color:black" name = "update-description" value = "update">{{description[i]}}</textarea>
                    <button type="submit">Update Description</button>
            </form>

Above is my HTML/Jinja Code

@app.route("/gallery-manager", methods = ["GET", "POST"])
def gallery_manager():
if request.method == "POST":    
    if(request.form["image-url"] and request.form["description"]) is not None:
        model.add_new_image(request.form["image-url"], request.form["description"])
        id, image, description, amount_of_images = model.get_gallery()
        return render_template("gallery-manager.html", image = image, description = description, amount_of_images = amount_of_images, id = id)


    if request.form['update-description'] is not None:
        print("hello")



id, image, description, amount_of_images = model.get_gallery()
return render_template("gallery-manager.html", image = image, description = description, amount_of_images = amount_of_images, id = id)

Above is my Python/Flask Code...

The issue, when I click on the update-description submit button, aka the second POST being handled in the html code, I get a 400 error

Bad Request
The browser (or proxy) sent a request that this server could not understand.

I realized that this error occurs when one of the POST fields are empty and can not be found. I understand that this happens because when I click the second POST submit button, it runs through the first POST check (request.form["image-url"] etc and finds that it is satisfied therefore wanting to run that code, but cant because update-description is still empty. How do I avoid this.

In other words how do I handle multiple POST methods.

Thank you,

1 Answers1

0

This is because you are missing the action section in form where the form should send the request

<form  action="/whereYouWantToSendRequest" method="post">

add your url endpoint by replacing this in the above whereYouWantToSendRequest

here are the two request

  <input type="text" name="image-url" value = "new"/>
    <input type="text" name="update-description" value = "update"/>

and to figure out which request

if request.form["image-url"] == "new":
     somethinggg
elif request.form["update-description"] =="update":
     sommmm
aman5319
  • 662
  • 5
  • 16