当前位置: 首页 > 知识库问答 >
问题:

如何以字符串形式将“datetime local”输入类型的值从HTML返回到python

淳于乐池
2023-03-14

这段代码的目的是要求用户输入特定的日期和时间。输入应该从HTML表单发送到应用程序。py,python脚本应该检查输入并相应地显示“可用暂停”。

我试过这个:

<div class="row">
  <div class="col-md-12">
      <div class="box box-primary">
          <div class="box-header">
              <h3 class="box-title">Please select a date & time to view available stalls : </h3>
            </div>
            <div class="box-body">
              <form method="POST" action="">
                <div class="form-group">
                    <label>Date and time range:</label>
                    <div class="input-group">
                      *****<input type="datetime-local" id="reservationtime"
                       name="reservationtime" value="2019-11-15T14:30"
                       min="2019-01-01T00:00" max="2030-12-31T00:00">*****

                    </div>
                    <button type = "submit" class="btn btn-primary">Submit</button>
                    <!-- /.input group -->
                </div>
              </form>
            </div>
      </div>
  </div>
</div>

python代码是:

resultstruct_time = time.strptime(reservationtime,"%Y-%m-%d %H:%M")
reservationDayID = resultstruct_time(6) + 1
reservationHour = resultstruct_time(3)

我得到的错误是:

strptime()参数0必须是str,而不是类NoneType

谁能帮我解决这个问题,告诉我如何将输入更改为str,同时保持输入类型为“日期时间本地”?谢谢你!

编辑:超文本标记语言表单似乎没有向python返回任何内容。但为什么会这样呢?有没有办法传回“预订时间”的期望值?下面是所有相关代码的转贴:

蟒蛇:

@app.route("/FilterStallsPage",methods = ["GET","POST"])
def DisplayFilterStallsPage():
    stallsInfoDict, availableStallsCount = filterAvailableStalls()
    return render_template('FilterStallsPage.html',stallsInfoDict =   stallsInfoDict, \
    totalStalls = len(stallsInfoDict), availableStalls = availableStallsCount)


def getReservationTime():
    if request.method == "POST": 
        reservationtime = request.form["reservationtime"]
        return reservationtime

def filterAvailableStalls():
    reservationtime = getReservationTime()
    resultstruct_time = time.strptime(str(reservationtime),"%Y-%m-%d %H:%M")

    reservationDayID = resultstruct_time(6) + 1
    reservationHour = resultstruct_time(3)
    (the rest block of irrelevant code not included)

HTML:

    <div class="row">
      <div class="col-md-12">
          <div class="box box-primary">
              <div class="box-header">
                  <h3 class="box-title">Please select a date & time to view available stalls : </h3>
                </div>
                <div class="box-body">
                  <form method="POST" action="">
                    <div class="form-group">
                        <label>Date and time range:</label>
                        <div class="input-group">
                          *****<input type="datetime-local" id="reservationtime"
                           name="reservationtime" value="2019-11-15T14:30"
                           min="2019-01-01T00:00" max="2030-12-31T00:00">*****

                        </div>
                        <button type = "submit" class="btn btn-primary">Submit</button>
                        <!-- /.input group -->
                    </div>
                  </form>
                </div>
          </div>
      </div>
    </div>

非常感谢。

共有1个答案

裴威
2023-03-14

我猜什么也没有被退回。您可以尝试在python接收响应的位置添加print。打印接收到的响应类型,然后从此处开始调试。尝试将类型转换为字符串。尝试检查是否没有返回任何内容。有时什么也不返回,它是一个非类型对象。

print(type(reservationtime) ) #debugging
print(reservationtime)        #debugging
resultstruct_time = time.strptime(str(reservationtime),"%Y-%m-%d %H:%M")

编辑帮助调试

def getReservationTime():
    if request.method == "POST": 
        print('made to POST')
        return "test-string"
        #reservationtime = request.form["reservationtime"]
        #return reservationtime

好的,如果你得到了打印,并且它没有返回非类型,这意味着你只需要修复注释行。如果它没有到达那里,您必须修复处理生成帖子的get reservation代码。我对flask的研究还不够充分,无法给你准确的答案,只是继续摆弄它,看看是否有帖子请求。

 类似资料:
  • 2.3.1 字符串类型的字面值形式 由于计算机程序本身要用字符序列来表示,因此程序中的命令、变量名、字面值、标点 符号等等都是字符组成的序列,但它们是程序构件而不是数据。这就带来一个问题:如何区 分程序中的某一个字符序列到底是字符串数据还是程序构件?几乎所有编程语言都采用了 加引号的方法来解决这个问题:字符串数据必须用一对引号括起来。 Python 语言提供了字符串数据类型 str,并且在表示字符

  • 问题内容: 背景: 我创建了一个非常简单的前端,用户可以在其中输入字符串。输入并单击“检查”按钮后,我想将此字符串作为JSON传递给python字符串,它将在其中进行SQL查找。根据SQL外观,python脚本应传递一个布尔值,该值应更改?到✔或✘。 题: 一旦按下“检查”按钮作为JSON到Python脚本,然后如何将字符串从Python传递到HTML,将?更改为✔或✘,如何传递字符串? 研究:

  • 问题内容: 我想编写一个JavaScript函数,该函数以给定URL的字符串形式返回HTML内容。我在Stackoverflow上找到了类似的答案。 但是,似乎什么也没写。加载页面时,出现空白屏幕。 问题答案: 您需要在readystate == 4时返回,例如

  • 问题内容: 为什么我返回的是JavaScript函数中的布尔变量,为什么在调用函数中将其检测为字符串,但是如果我返回布尔文字,则调用函数会将其检测为布尔值? 因此,例如: 问题答案: 您无需声明状态变量。 因此,全局一个()被覆盖。 但是,[HTML5规范]将该属性定义为DOMString: 因此,它具有一个设置器(公开的或内部的),用于存储字符串化的值。 要解决此问题,只需使用语句声明您的局部变

  • 问题内容: 假设我定义了以下类型: 我将如何以编程方式将类型作为字符串获取,因此以后可能很容易重构,而不是: 我不太喜欢,因为它实例化了它,也可以从Interface实例化。 问题答案: 您可以使用包装(包装也可以在内部使用)。您可以从 指向 该类型的 指针 开始,并使用没有分配的 类型化_指针值,并且可以使用来从其描述符导航到指针的 _基本 类型(或 元素 类型)的描述符。 例: 输出(在Go