簡體   English   中英

jinja2.exceptions.UndefinedError: '__main__.NamerForm object' 沒有屬性 'submit'

[英]jinja2.exceptions.UndefinedError: '__main__.NamerForm object' has no attribute 'submit'

我的提交按鈕不起作用表單 name.html 我不知道問題出在哪里我從 my.py 文件中檢查它但仍然有這個問題實際上希望我定義 submite 但在哪里以及如何定義? 我的名字有問題嗎。html? 還是關於以前的名稱 class?

from flask import Flask , render_template,url_for
from flask_wtf import FlaskForm
from wtforms import StringField,SubmitField
from wtforms.validators import DataRequired

#flask instance
app = Flask (__name__)
app.config['SECRET_KEY'] = "my super secret key that no one is supposed ti know!"
# ----------------------------------------------------
#create a form class
class NamerForm(FlaskForm):
    name = StringField ("What's Your Name?",validators=[DataRequired()])
    Submit = SubmitField('Submit')


# ----------------------------------------------------
#create route decorator
@app.route('/')
# def index ():
#     return "<h1>Hello World!</h1>"


#Filter!!!
# safe = will do everything between tags + changes
# capitalize
# lower
# upper
# tittle = first letter of all words capitalized
# trim = remove spaces from the end
# Striptags = will remove everything between tags = no change will happen


# --------------------------------------------------

def index ():
    first_name = 'Maryam'
    stuff = "This is Bold Text"
    favorite_pizza = ["Pepperoni" , "Cheese" ,"Mushrooms" , 12 ]
    return render_template('index.html' ,
     first_name = first_name ,
     stuff = stuff , 
     favorite_pizza = favorite_pizza )

# --------------------------------------------------
#localhost:5000/user/Maryam or whatever name :)
# @app.route('/user/<name>')
# def user (name):
    # return "<h1>Hello , {} !!!</h1>".format(name)
# --------------------------------------------------
#user_name it's a jinja tag!

@app.route('/user/<name>')
def user (name):
    return render_template('user.html' , user_name=name)

# --------------------------------------------------
#create  custom Error pages
#Invalid URL
@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html') ,404
# --------------------------------------------------
#Internal Server Error
@app.errorhandler(500)
def page_not_found(e):
    return render_template('500.html') ,500
#---------------------------------------------------
#create name page
@app.route('/name' , methods=['GET','POST'])
def name():
    name = None
    form = NamerForm()
    #validate form
    if form.validate_on_submit():
        name = form.name.data
        form.name.data = ''
        

    return render_template('name.html',
           name = name,
           form = form)

#---------------------------------------------------

if __name__ == '__main__':
 app.run(debug=True)

這是我的 html 文件,我將表單保存在 name.html

{% extends 'base.html' %}

{% block content %}

        <!-- <h1>What's Your Name?!</h1> -->
{% if name %}
        <h1>Hello {{ name }}!!!</h1>
{% else %}
        <h1>What's Your Name?</h1>
        <br/>
        <form method="POST">
            {{ form.hidden_tag() }}
            {{ form.name.label }}
            {{ form.name() }}
            <br/>
            
        </form>
        <button>
            {{ form.submit() }}
        </button>
{% endif %}
{% endblock %}

這一切都是關於一個錯字,太難過了 提交:

class NamerForm(FlaskForm):
    name = StringField ("What's Your Name?",validators=[DataRequired()])
    Submit = SubmitField('Submit')

應該提交小's'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM