为什么Flask WTF表单在POST请求中出现404错误而未获取
我已经看了一段时间了,试图让这个表单识别帖子,结果它生成了一个404错误 视图为什么Flask WTF表单在POST请求中出现404错误而未获取,post,flask,flask-wtforms,Post,Flask,Flask Wtforms,我已经看了一段时间了,试图让这个表单识别帖子,结果它生成了一个404错误 视图 from flask import * from dockteck.models import EmailForm from dockteck import app # Page Routing @app.route('/') def main(): return render_template('index.html') @app.route('/contact', methods=['GET',
from flask import *
from dockteck.models import EmailForm
from dockteck import app
# Page Routing
@app.route('/')
def main():
return render_template('index.html')
@app.route('/contact', methods=['GET', 'POST'])
def contact():
form = EmailForm()
if request.method == 'POST':
return "Message Sent"
elif request.method == 'GET':
return render_template('contact.html', form=form)
@app.route('/portfolio')
def portfolio():
return render_template('portfolio.html')
我有一个简单的联系功能,当请求页面GET时,它可以正常工作。为页面获取加载以下联系人页面:
{% extends "template.html" %}
{% block content %}
<h1>Contact Me</h1>
<form action="{{ url_for('contact') }}" method=post>
<div class="row">
<div class="large-4 columns">
{{ form.name.label }}
{{ form.name }}
</div>
<div class="large-4 columns">
{{ form.email.label }}
{{ form.email }}
</div>
<div class="large-4 columns">
<div class="row collapse">
{{ form.subject.label }}
{{ form.subject }}
</div>
</div>
</div>
<div class="row">
<div class="large-12 columns">
{{ form.comment.label }}
{{ form.comment }}
</div>
</div>
<div class="row">
<div class="large-6 columns">
{{ form.submit }}
</div>
</div>
</form>
{% endblock %}
尝试改变这些事情:
从method=post到method=“post”
从form=EmailForm()到form=EmailForm(request.form)
告诉我你是否还有任何错误你能给我们看一下
EmailForm
的定义吗?@jamesport我在问题的末尾添加了EmailForm。嗯,奇怪的是,你没有做任何明显的错误,当我测试它时,一切都正常。我所做的与您所拥有的唯一不同之处在于,我没有扩展template.html
,我只是直接渲染您粘贴在上面的内容。也许试着这样做,看看是否有什么不同。@jamesport好吧,看来模板并没有引起我这边的问题。在我只看了一页之后仍然没有工作。如果有什么帮助的话,我正在使用passenger wsgi在Dreamhost上托管它。这可能与共享主机的设置有关。在尝试了这些组合后,它仍然会给我相同的错误。我测试了我的代码,它在pythonywhere主机上运行良好。我相信这可能与WSGI服务器有关。
<!DOCTYPE html>
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8" />
from wtforms import Form, TextField, TextAreaField, validators, SubmitField
class EmailForm(Form):
name = TextField('Full Name')
email = TextField('Email Address')
subject = TextField('Subject')
comment = TextAreaField('Comments')
submit = SubmitField('Send message')