![](/img/trans.png)
[英]jinja2.exceptions.UndefinedError: object has no attribute
[英]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.