연습 사이트에서 광고 목록을 찾아 볼 수있는 페이지를 렌더링하고 있습니다. '찾아보기'페이지에는 3 개의 양식이 있고, 2 개는 선택 필드이고 다른 하나는 텍스트 필드입니다. 선택 필드는 사용자가 위치 또는 트랜잭션 유형을 변경할 수있게하며, 텍스트 필드는 사용자가 위치를 찾거나 변경하는 것을 허용합니다. 나는이 순수 HTML을하고 flask-wtf를 사용하지 않기를 원했습니다. 위치를 바꿀 수있는 부분을 성공적으로 만들었지 만 다른 옵션의 코드를 추가하자마자 코드가 깨져서 400 개의 잘못된 요청 오류이 발생합니다. 변경 항목 및 거래 유형에 대한 양식을 추가 할 때 이것이 왜 작동하지 않는지에 대한 제안이나 지침이 있습니까?python-flask html form 도움말/제안
@app.route('/find-it/', methods=['GET','POST'])
def browse():
try:
location = session.get('location', None)
transType = session.get('transType', None)
item = session.get('item', None)
data = browseQuery()
if request.method == 'POST':
if request.form['changeLocation'] != '':
print('location changed')
location = request.form['changeLocation']
session['location'] = location
return redirect(url_for('browse', location=location))
elif request.form['changeType'] != '':
print('type changed')
transType = request.form['changetype']
session['transType'] = transType
return redirect('browse', transType=transType)
else:
if request.form['changeItem'] != '':
print('item changed')
item = request.form['changeItem']
session['item'] = item
return redirect(url_for('browse', item=item))
return render_template('all-classifieds.html',location=location,transType=transType, data=data)
except Exception as e:
return (str(e))
HTML :
<form method="post" id="changeLocation" name="changeLocation" action="">
<select name="changeLocation" id="changeLocation" style="margin-right: 5%; float: left;">
<optgroup label="Where?">
<option selected style="display:none;color:#eee;"></option>
<option>option 1</option>
<option>option 2</option>
</optgroup></select></form>
<button type="submit" id="submit" form="changeLocation" style="padding: 0 3px; float:left;"
class="btn btn-info btn-sm">
<i class="glyphicon glyphicon-search"></i>
</button>
<form method="post" name="changeType" id="changeType">
<select name="changeType" id="changeType" style="margin-right: 5%; float: left;">
<optgroup label="...">
<option selected style="display:none;color:#eee;"></option>
<option>option 1</option>
<option>option 2</option>
<option>option 3</option>
</optgroup>
</select>
<form method="post" name="changeType" id="changeType">
<select name="changeType" id="changeType" style="margin-right: 5%; float: left;">
<optgroup label="Look for things that are...">
<option selected style="display:none;color:#eee;"></option>
<option>asdf</option>
<option>asdfasdf</option>
<option>asdfasdfasdf</option>
</optgroup>
</select></form>
<button type="submit" id="submit" form="changeType" style="padding: 0 3px; float:left;"
class="btn btn-info btn-sm">
<i class="glyphicon glyphicon-search"></i>
</button>
<form method="post" name="changeItem" id="changeItem">
<input type="text" name="changeItem" value="" id="changeItem" placeholder=""/>
</form>
<button type="submit" id="submit" form="changeItem" style="padding: 0 3px; float:left;"
class="btn btn-info btn-sm">
<i class="glyphicon glyphicon-search"></i>
</button>
로 다시 작성할 수 있습니다 왜 디버그 = 사실은, 당신은 실제 오류가 무엇인지 볼 수 있습니다 사용하지 않는? –
그래서 새로운. 나는 debug = True를 가지고있다. 나는 그것을 사용하는 방법을 모르겠습니다. @DanielRoseman 나는 추적 페이지를 얻지 못한다. 그것은 단지 내가 제출할 때 페이지에 400 나쁜 요청을 말합니다 그리고 그게 전부입니다 – user3344239
'GET'요청을 받았을 때 페이지 로딩을 처리 할 코드가 있습니까? 'POST'에 대한 코드를 보았습니다. 더 이상 보이지 않는 것이 있습니까? – coralvanda