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

2024-10-03 02:42:34 发布

您现在位置:Python中文网/ 问答频道 /正文

这段代码的目的是要求用户输入特定的日期和时间。输入应该从HTML表单发送到应用程序类型,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)

我得到的错误是:

TypeError: strptime() argument 0 must be str, not class 'NoneType'

有谁能帮我解决这个问题,告诉我如何将输入改成str,同时保持输入类型为“datetime local”吗谢谢您!你知道吗

Edit:HTML表单似乎没有向python返回任何内容。但为什么会这样呢?有没有办法传回“reservationtime”的期望值以下是所有相关代码的转载:

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>

谢谢你!你知道吗


Tags: divformboxinputtimetypegroupbutton
1条回答
网友
1楼 · 发布于 2024-10-03 02:42:34

我猜什么也没退。您可以尝试在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

好的,如果你得到了打印结果,它没有返回一个noneType,这意味着你只需要修复注释行。 如果它没有到达那里,你必须修复处理生成post的get reservation代码。我还没有足够的工作与烧瓶给你的确切答案,只是不断摆弄它,看看是否有一个职位的要求,甚至发生。你知道吗

相关问题 更多 >