【问题标题】:WTForms datetime field time is not updatingWTForms 日期时间字段时间未更新
【发布时间】:2018-02-09 12:34:21
【问题描述】:

我为日期时间字段定义了 wtforms,如下所示:

stime = DateTimeField(label='Start time',validators=[validators.InputRequired()],format = "%d%b%Y %H:%M",default= datetime.now(timezone('UTC')))
    etime = DateTimeField(label='End time',validators=[validators.InputRequired()],format = "%d%b%Y %H:%M",default= datetime.now(timezone('UTC')))

在 HTML 页面上调用此字段如下:

<form method= POST action="{{ url_for('input_ext') }}">
            <table>
              {% for field in form %}
                <tr>
                            <td>{{ field.label }}*</td><td>{{ field }}</td>
                </tr>
              {% endfor %}
            </table>
<input id = "generate" name="generate" type=submit value=Next></form>

烧瓶代码:

from flask import Flask
from flask import render_template
from flask import request
from model import InputForm

app = Flask(__name__)
@app.route('/',methods = ['GET','POST'])
#select interface and for selected interfaces pullup circuit info
def provideinput():
    global devices
    devices = ''
    form = InputForm(request.form)
    return render_template("utctime.html", form=form)
if __name__ == "__main__":
    app.run(debug=True,host="10.23.102.116",port=82)

问题是,我在 UTC 中获得时间,并且在我重新加载页面时不会更新到当前的 UTC 值。它与我开始运行 python 代码时保持不变。 定义 DateTimeField 有什么问题吗?

更改如下,仍然没有运气:

  stime = DateTimeField(label='Start time(EDT)', validators=[validators.InputRequired()], format="%d%b%Y %H:%M",
                          default=datetime.today)
    etime = DateTimeField(label='End time(EDT)', validators=[validators.InputRequired()], format="%d%b%Y %H:%M",
                          default=datetime.today)

【问题讨论】:

  • etime = DateTimeField(label='End time(EDT)', validators=[validators.InputRequired()], format="%d%b%Y %H:%M", default= datetime.today) -> 还是这样,重新加载后时间没有变化

标签: python time wtforms pytz


【解决方案1】:

答案在wtforms+flask today's date as a default value

之前有人引用过这个。我的错误是我在错误的地方编辑。

改为:

stime = DateTimeField(label='Start time(EDT)',validators=[validators.InputRequired()],format = "%d%b%Y %H:%M",default= datetime.utcnow)
    etime = DateTimeField(label='End time(EDT)',validators=[validators.InputRequired()],format = "%d%b%Y %H:%M",default= datetime.utcnow)

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 1970-01-01
    • 2011-09-06
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    相关资源
    最近更新 更多