为了账号安全,请及时绑定邮箱和手机立即绑定

WTForms:如何为 HTML5 小部件设置默认值?

WTForms:如何为 HTML5 小部件设置默认值?

翻过高山走不出你 2023-06-20 17:34:31
我正在尝试使用 WTForms 颜色输入字段。如何#ff0000为输入字段设置默认值(例如 )?这就是我定义表单的方式:from wtforms.widgets.html5 import ColorInputclass ColoursForm(Form):   background_color = StringField(widget=ColorInput())这是观点:@app.route("/colours/<token>/", methods=['GET', 'POST'])def edit_colours(token):   form = ColoursForm(request.form)   if request.method == 'GET':      return render_template('colours_edit.html', form=form, token=token)   else:  # Request = post      return redirect(url_for('view_scoreboard', token=token))在我的 Jinja2 模板 (colours_edit.html) 中,我这样做:<p> {{ form.background_color() }} Pick a color here </p>一切正常,但我不知道如何设置默认值。什么不起作用是这样的形式:background_color = StringField(widget=ColorInput(), default="#ff00ff")
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

一种方法是检查然后在您的视图中设置数据值。请注意获取表单后的两条新行:


@app.route("/colours/<token>/", methods=['GET', 'POST'])

def edit_colours(token):

   form = ColoursForm(request.form)

   if not form.background_color.data:

       form.background_color.data = "#ff00ff"

   if request.method == 'GET':

       return render_template('colours_edit.html', form=form, token=token)

   else:  # Request = post

       return redirect(url_for('view_scoreboard', token=token))

没有默认值:

//img1.sycdn.imooc.com//649172d50001729401740036.jpg

默认值#ff00ff

//img1.sycdn.imooc.com//649172de0001a5f301940042.jpg

这是一个最小的例子,供任何想尝试的人使用:


from flask import Flask, request, render_template

from wtforms.widgets.html5 import ColorInput

from wtforms import Form, StringField



class ColoursForm(Form):

    background_color = StringField(widget=ColorInput())



app = Flask(__name__)



@app.route("/")

def edit_colours():

    form = ColoursForm()

    if not form.background_color.data:

        form.background_color.data = "#ff00ff"

    if request.method == "GET":

        return render_template("colors_edit.html", form=form)

colors_edit.html和OP一样(一定要放在templates文件夹里):


<p> {{ form.background_color() }} Pick a color here </p>  

我不知道为什么您第一次尝试设置默认值不起作用。也没有为我工作。似乎应该如此。这个答案更深入一点。


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 221 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号