Python Flask cannot get element from form
Question: Im having trouble getting anything from the shown HTML form

I always get "ValueError: View function did not return a response"

Can somebody help me out here please? I have tried every variation of
request.get that I can find on the web. Also if I specify my form should use
post it uses get anyway - anybody know why this is?

Im new to flask so forgive my ignorance!

Thanks in advance.

The python file (routes.py)

    
    
    from flask import Flask, render_template, request
    import os
    app = Flask(__name__)     
    musicpath = os.listdir(r"C:\Users\Oscar\Music\iTunes\iTunes Media\Music")
    lsize = str(len(musicpath))
    looper = len(musicpath)
    
    
    @app.route('/')
    def home():
        return render_template('home.html', lsize=20, looper=looper, musicpath=musicpath)
    
    @app.route('/pop', methods=['POST', 'GET'])
    def pop():
        if request.method == "GET":
          text = request.args.get('som')
          return text
          #Have tried every variation of request.get
    
    @app.route('/about')
    def about():
        name = "Hello!"
        return render_template('about.html', name=name)
    
    
    
    if __name__ == '__main__':
        app.run(debug=True)
    

The html file (home.html)

    
    
    {% extends "layout.html" %}
    {% block content %}
      <div class="jumbo">
        <h2>A Music app!<h2>
      </div>
      <div>
            {% if lsize %}
                <form action="/pop">
                    <select id="som" size="20">
                    {% for i in range(looper):%}
                        <option value="{{i}}">{{ musicpath[i] }}</option>
                    {% endfor %}
                    </select>
                </form>
            {% endif %}
        </div>
        <a href="{{ url_for('pop') }}">Select,</a>
    
    {% endblock %}
    


Answer: You don't have a `name` attribute on your `select` element. That is the
attribute that browsers use to send information in forms; without it no data
will be sent.

Note also that your `pop` handler does not do anything if the method is POST,
even though you explicitly say you accept that method.

