비슷한 소리가 나는 문제와 관련 Flask 문서를 읽은 후 양식을 제출할 때 다음 오류가 발생하는 원인을 파악할 수없는 것 같습니다.
400 잘못된 요청
브라우저 (또는 프록시)가이 서버가 이해할 수없는 요청을 보냈습니다.
양식은 항상 제대로 표시되지만 다음 함수 중 하나에 연결된 HTML 양식을 제출하면 잘못된 요청이 발생합니다.
@app.route('/app/business', methods=['GET', 'POST'])
def apply_business():
if request.method == 'POST':
new_account = Business(name=request.form['name_field'], email=request.form['email_field'], account_type="business",
q1=request.form['q1_field'], q2=request.form['q2_field'], q3=request.form['q3_field'], q4=request.form['q4_field'],
q5=request.form['q5_field'], q6=request.form['q6_field'], q7=request.form['q7_field'],
account_status="pending", time=datetime.datetime.utcnow())
db.session.add(new_account)
db.session.commit()
session['name'] = request.form['name_field']
return redirect(url_for('success'))
return render_template('application.html', accounttype="business")
@app.route('/app/student', methods=['GET', 'POST'])
def apply_student():
if request.method == 'POST':
new_account = Student(name=request.form['name_field'], email=request.form['email_field'], account_type="student",
q1=request.form['q1_field'], q2=request.form['q2_field'], q3=request.form['q3_field'], q4=request.form['q4_field'],
q5=request.form['q5_field'], q6=request.form['q6_field'], q7=request.form['q7_field'], q8=request.form['q8_field'],
q9=request.form['q9_field'], q10=request.form['q10_field'],
account_status="pending", time=datetime.datetime.utcnow())
db.session.add(new_account)
db.session.commit()
session['name'] = request.form['name_field']
return redirect(url_for('success'))
return render_template('application.html', accounttype="student")
HTML의 관련 부분은
<html>
<head>
<title>apply</title>
</head>
<body>
{% if accounttype=="business" %}
<form action="{{ url_for('apply_business') }}" method=post class="application_form">
{% elif accounttype=="student" %}
<form action="{{ url_for('apply_student') }}" method=post class="application_form">
{% endif %}
<p>Full Name:</p>
<input name="name_field" placeholder="First and Last">
<p>Email Address:</p>
<input name="email_field" placeholder="your@email.com">
...
대부분의 사람들에게 문제가 호출되지 않았 GET
거나 POST
,하지만 두 기능에 그냥 뭐하는 거지, 내가 두 번 같은, 확실히 내가 가져 모든 필요하게 확인 from flask import request
. 또한 데이터베이스를 쿼리하여 양식의 추가 사항이 추가되지 않았 음을 확인했습니다.
Flask 앱에서 HTML 양식에서 약간 다른 레이블이 지정된 양식 필드를 요청했습니다. 이름을 일관되게 유지하는 것은 필수입니다. 이 질문 양식 전송 오류, Flask 에서 더 많은 내용을 읽을 수 있습니다.