【问题标题】:Flask error - NameError: name 'DateField' is not definedFlask 错误 - NameError:未定义名称“DateField”
【发布时间】:2018-10-10 11:46:44
【问题描述】:

我正在尝试使用 Flask 构建以下页面并收到以下错误:

NameError: name 'DateField' is not defined

下面给出的是python脚本

import pandas as pd
import psycopg2
from psycopg2 import sql
from io import BytesIO
from datetime import datetime, date
import warnings
import os
from io import BytesIO



def demo_func(name,start_date,end_date):

db_connection details
dwh_cursor = conn.cursor()  # set DB Cursor

## The Query
dwh_cursor.execute(sql.SQL(
    """SELECT count(bill_id) from sales where name = {} and created_at between {} and {}""").format(
    sql.Literal(name), sql.Literal(start_date), sql.Literal(end_date)))

下面给出的是view.py代码

@app.route('/page1', methods=['GET','POST'])
def carrier_scac():
    form = page1Form()
    if form.validate_on_submit():
        name = form.name.data
        start_date = DateField('Start Date', format="%Y-%m-%d",description='This is the start date of the analysis')
        end_date = DateField('End Date', format="%Y-%m-%d",description='This is the end date of the Analysis')
        output = demo_func(name,start_date,end_date)

        return send_file(output, attachment_filename=name + ' '  + ' Details.xlsx',as_attachment=True)

    return render_template('page1.html', form=form)

page1.html 的代码

<form action=""
          enctype="multipart/form-data"
          method="POST">
        {{form.hidden_tag()}}
        <table>
            {{ render_field(form.name, size=50) }}
            {{ render_field(form.start_date, size=20) }}
            {{ render_field(form.end_date, size=20) }}
            {% for subfield in form.tracking_info_field %}
            {% endfor %}

            <tr class="submit">
                <td></td>
                <td><button type="submit">Get the Report!</button>

在运行 page1.html 时出现错误

builtins.NameError
NameError: name 'DateField' is not defined

谁能指导我在上面的代码中哪里出错了。谢谢

【问题讨论】:

  • 是否包含导入语句,即 from wtforms import DateField ?
  • @SarthakNegi,是的,我确实有 from wtforms.fields import DateField 。我之前忘了在我的代码中包含它..
  • 不确定是否有区别,但我导入如下: wtforms import DateField ,而不是 wtforms.fields import DateField。正如 Sarthak 实际上也指出的那样。

标签: python flask wtforms


【解决方案1】:

抱歉,我在views.py 中输入了错误的列。改正后就解决了..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多