Html 如何将元素添加到从WTForms渲染的按钮?

Html 如何将元素添加到从WTForms渲染的按钮?,html,css,flask,flask-wtforms,wtforms,Html,Css,Flask,Flask Wtforms,Wtforms,我在烧瓶中呈现一个提交按钮,其格式如下: <button class="primary-btn">Register<span class="lnr lnr-arrow-right"></span></button> forms.py: class SignupForm(Form): submit = SubmitField("Register") login.html: <form method="POST" action="/

我在烧瓶中呈现一个提交按钮,其格式如下:

<button class="primary-btn">Register<span class="lnr lnr-arrow-right"></span></button>
forms.py:

class SignupForm(Form):
    submit = SubmitField("Register") 
login.html:

<form method="POST" action="/register">
    {{ form.hidden_tag() }}
    {{ form.submit(class_="primary-btn") }}
</form>
它呈现一个如下所示的按钮:

<input class="primary-btn" id="submit" name="submit" type="submit" value="Register">
但我真正想要的是一个按钮元素,在这里我可以添加一个元素,这样我就可以添加一个箭头,如下所示:

<button class="primary-btn">Register<span class="lnr lnr-arrow-right"></span></button>
我尝试将span元素附加到SubmitField中的字符串,但没有成功。它只是引发了语法错误

下面你可以看到图片。我只想将箭头添加到WTForm元素。

是否尝试使用元素:after伪选择器?内容为:“图标”

您是否尝试使用元素:在伪选择器之后?内容为:“图标”

您应该能够使用标记

需要使用标记函数来告诉表单在不转义的情况下渲染是安全的

如果你想避免这种情况,还有其他方法。通常,您不需要在python中指定submit按钮,因为您通常不需要输入任何有用的数据。我会手动将submit按钮HTML添加到模板中,如您所说:

<button class="primary-btn" type="submit">Register<span class="lnr lnr-arrow-right"></span></button>
您应该能够使用标记

需要使用标记函数来告诉表单在不转义的情况下渲染是安全的

如果你想避免这种情况,还有其他方法。通常,您不需要在python中指定submit按钮,因为您通常不需要输入任何有用的数据。我会手动将submit按钮HTML添加到模板中,如您所说:

<button class="primary-btn" type="submit">Register<span class="lnr lnr-arrow-right"></span></button>

伟大的谢谢,我试试看。但最后一个问题是:手动添加按钮不会破坏我的CSRF保护吗?这不是应该使用WTForms的原因吗?不,绝对不是:CSRF所做的只是在表单中添加一个额外的字段,该字段随表单提交一起发送,然后在服务器上验证。您可以添加任意数量的HTML元素。尽管如此,我个人还是会避免使用纯HTML,如果您使用python完成其余的工作。把所有的东西都放在一个地方才更有意义。不知为什么我不能让它工作。使用Markup呈现如下输入字段:当使用手动方法时,我得到错误:method not allowed,即使启用了POST?@LGR Hmmm,这很奇怪。在过去的30分钟里,我一直在尝试做一些研究,但我真的没有太多的运气找到任何东西…@一位朋友,对不起,手动方式现在起作用了。我在if语句中出错。。。。很抱歉给你带来了困惑。总而言之:标记不起作用,因为我只能更改值中的字符串,但是手动添加按钮起作用。太好了!谢谢,我试试看。但最后一个问题是:手动添加按钮不会破坏我的CSRF保护吗?这不是应该使用WTForms的原因吗?不,绝对不是:CSRF所做的只是在表单中添加一个额外的字段,该字段随表单提交一起发送,然后在服务器上验证。您可以添加任意数量的HTML元素。尽管如此,我个人还是会避免使用纯HTML,如果您使用python完成其余的工作。把所有的东西都放在一个地方才更有意义。不知为什么我不能让它工作。使用Markup呈现如下输入字段:当使用手动方法时,我得到错误:method not allowed,即使启用了POST?@LGR Hmmm,这很奇怪。在过去的30分钟里,我一直在尝试做一些研究,但我真的没有太多的运气找到任何东西…@一位朋友,对不起,手动方式现在起作用了。我在if语句中出错。。。。很抱歉给你带来了困惑。总而言之:标记不起作用,因为我只能更改值中的字符串,但手动添加按钮起作用。