为什么Flask WTF表单在POST请求中出现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',

我已经看了一段时间了,试图让这个表单识别帖子,结果它生成了一个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', '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')