비슷한 소리가 나는 문제와 관련 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 에서 더 많은 내용을 읽을 수 있습니다.