javascript - Flask - 联系表单在提交时发送电子邮件,但不重定向并且引导 btn 不显示
问题描述
from flask_mail import Mail, Message
app.config['MAIL_SERVER'] = 'xxxx'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'xxxx'
app.config['MAIL_PASSWORD'] = 'xxxx'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_DEFAULT_SENDER'] = 'xxx'
mail = Mail(app)
app.config['SECRET_KEY'] = 'xxx'
# Contact Form
class ContactForm(FlaskForm):
name =StringField("Name",validators=[DataRequired()])
email = StringField("Email",validators=[DataRequired(), Email()])
message = TextAreaField("Message",validators=[DataRequired()])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def home():
form = ContactForm()
if form.validate_on_submit() == False:
return render_template('home2.html',form=form)
else:
msg = Message('WEBSITE CONTACT', sender='xxx', recipients=['xxxx'])
msg.body = '%s \n %s \n\n %s ' % (form.name.data, form.email.data, form.message.data)
mail.send(msg)
return redirect(url_for('form_complete'))
return render_template('home2.html',form=form)
@app.route('/complete')
def form_complete():
return render_template('form_submitted.html')
联系表单成功发送电子邮件,但它不会重定向到 form_complete。
我希望在提交联系表单后(通过引导按钮)发送一封电子邮件并重定向到 form_submitted.html
此外,如果我更改 HTML 中的类,Send
文本就会消失:
...
<div class="container">
<h3 class="big text-center" data-aos="fade-down" data-aos-delay="0">
Contact
</h3>
<form method="POST" action ="">
{{ form.hidden_tag() }}
{% for message in form.name.errors %}
<div class="flash"><br><br>{{ message }}<br><br></div>
{% endfor %}
{{ form.name.label(class="form-control-label") }}
{{ form.name(class="form-control form-control-lg") }}
{% for message in form.email.errors %}
<div class="flash"><br><br>{{ message }}<br><br></div>
{% endfor %}
{{ form.email.label(class="form-control-label") }}
{{ form.email(class="form-control form-control-lg") }}
{% for message in form.message.errors %}
<div class="flash"><br><br>{{ message }}<br><br></div>
{% endfor %}
{{ form.message.label(class="form-control-label") }}
{{ form.message(class="form-control form-control-lg") }}
<!--{# {{ form.submit(class="btn btn-outline-info") }} #}-->
{{ form.submit() }}
</form>
</div>
...
编辑:按下提交按钮时,联系表单正确发送到我的电子邮件,尽管它没有按照我的意愿重定向。
有一个 script.js 包含一些残留的 php 表单信息 - 但从 script.js 中删除它并没有改变任何东西。
解决方案
我发现了问题,它是由 引起的script.js
。
在static/script.js
注释掉或删除第 170 行
$("form:not(.SFG)").submit(function(event){
// event.preventDefault();
var form = $(this);
var grecaptchaContainer = document.getElementById("g-recaptcha");
if($(grecaptchaContainer).length>0){
注释掉或只是删除event.preventDefault();
,一切都会奏效。
在 Bootstrap Button 中,您在 Bootstrap.css 和framework.css
and之间命名冲突framework.min.css
因为.btn
有影响 Bootstrap 类.btn
的类,这就是您的 Bootstrap Button 不出现的原因 您需要在and中更改.btn
该类的命名static\framework.css
static\framework.min.css
推荐阅读
- azure - 在 Azure 数据工厂中提取元数据
- swiftui - 映射内部 VStack 导致崩溃
- html - 为什么导航栏在悬停时没有响应
- typescript - 打字稿如何在扩展盲输入时定义响应
- postgresql - 无法将 CSV 文件导入 PostgreSQL
- matlab - 从 .rdt 奥林巴斯文件超声波访问数据
- swift - 使用 DragGesture 移动视图,同时在顶部有一个 ScrollView
- javascript - 查找超过 x 个单词的单词(打印输入了多少单词)
- python - IsolationForest 决策分数到概率算法的转换
- python - + 不支持的操作数类型:“NoneType”和“NoneType”(Python)