2016-04-13 1 views
-1

Я получаю плохое значение, когда возвращаю этот параметр. Например, когда я отправляю n = «Arnold, Robert | ID: 1» в качестве опции, он отображается на веб-странице, но когда пользователь нажимает кнопку «Отправить», на мой сервер Flask отправляется только «Arnold». Я пытаюсь получить значение ID.HTML-форма отправляет часть значения параметра обратно в Flask

Кто-нибудь знает, как получить все значение параметра из формы или другой способ получить идентификатор из строки?

Вот HTML-

<h2>Donors</h2>          
<form method="POST" action="/display_donor"> 
    <select name="selected_donor"> 
    {% for n in donors %} 
     <option value={{n}}>{{n}}</option> 
    {% endfor %} 
    </select> 
    <br /> 
    <br><input type="submit" value="View donor"/> 
</form> 

Вот соответствующая функция КОЛБУ

@app.route('/display_donor', methods=['POST']) 
def display_donor(): 
    temp_id = request.form['selected_donor'] 
    print "temp_id" 
    print temp_id 
    final_id = re.sub('[^0-9]','', temp_id) 
    print "final_id" 
    print final_id 
    display_value = 1 

    cursor = g.conn.execute("SELECT name,donor_id FROM donors") 
    donors = [] 
    for result in cursor: 
    temp_string = result['name'] + " | ID: " +result['donor_id'] 
    donors.append(temp_string) 
     # can also be accessed using result[0] 
    cursor.close() 

    print "this" 
    print final_id 

    #Returns a specific instance of transaction as specified by user 
    cursor = g.conn.execute("SELECT * FROM donors D WHERE D.donor_id='%s'" % final_id) 
    values = [] 
    for result in cursor: 
    values.append(result['donor_id']) 
    values.append(result['name']) 
    values.append(result['donor_type']) 
    cursor.close() 

    #denote attribute names 
    attribute = [] 
    attribute.append('donor_id') 
    attribute.append('name') 
    attribute.append('donor_type') 

    return render_template("donors.html",attribute=attribute,values=values,donors=donors,display_value=display_value) 

ответ

0

Я установил эту проблему путем передачи значения отдельно, а не в виде одной строки. Это вызвало у меня все синтаксические разборки и позволило мне распечатать такие значения:

<h2>Donors</h2>          
<form method="POST" action="/display_donor"> 
    <select name="selected_donor"> 
    {% for n in donor_ids %} 
     <option value={{n}}>{{ donor_names[loop.index0] }} | ID: {{n}}</option> 
    {% endfor %} 
    </select> 
    <br /> 
    <br><input type="submit" value="View donor"/> 
</form> 
Смежные вопросы