简体   繁体   中英

How to select information within a HTML tag to use in a flask form

My question:

Is there a way that I can select the artist name from between the h4 tags and pass it into the database using Flask?

Context:

I am new to flask so I could be making some pretty simple mistakes here. I am trying to allow a user to click a button to 'follow/like' an artist and when they do this the artists name will be added to a basic database along with the users ID. To do this I am trying to use request.form.get('artistName') . However, each time this does not return anything.

The HTML for my code looks like:

{% for i in range(numOfResults) %}
     <form method="POST" action="/follow">
         <div class="col-xs-6 col-sm-3 placeholder">
             <img src="{{artistImage[i]}}" width="200" height="200" class="img-responsive" alt="Missing Artist Image">
             <h4 name='artistName'>{{ artistName[i] }}</h4>
             <button type="submit">Follow Artist</button>
          </div>
      </form>
{% endfor %}

My app.py looks as follows:

@app.route('/follow', methods=['GET', 'POST'])
def follow():
    artistName = request.form.get('artistName')
    new_like = Like(user_id=current_user.id, artist=artistName, artist_id='10')
    db.session.add(new_like)
    db.session.commit()
    return '<h1> Artist Followed </h1>'

h4 is not a valid form element, so you will not be able to get its value like this. One usually uses hidden input for such purpose.

Try this code:

{% for i in range(numOfResults) %}
     <form method="POST" action="/follow">
         <div class="col-xs-6 col-sm-3 placeholder">
             <img src="{{artistImage[i]}}" width="200" height="200" class="img-responsive" alt="Missing Artist Image">
             <h4>{{ artistName[i] }}</h4>
             <input type="hidden" name="artistName" value="{{ artistName[i] }}">
             <button type="submit">Follow Artist</button>
          </div>
      </form>
{% endfor %}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM