gpt4 book ai didi

python - 在 Django 提交表单中输入错误格式(日期时间格式)时如何打印错误?

转载 作者:行者123 更新时间:2023-11-29 09:38:08 25 4
gpt4 key购买 nike

我正在网络浏览器上构建一个流式对象检测应用程序,数据(日期时间、对象信息等)保存在mysql数据库中,该应用程序有一个网页用于根据日期时间过滤数据,现在它只是当格式是正确的日期时间格式(例如 2019-07-24 12:00:00)时有效,如果格式不正确(例如 2019-07-123),网络浏览器将返回错误页面。 enter image description here

搜索.html

<input id="from_date" type="text" name="from_date" placeholder="From Date...">
<input id="to_date" type="text" name="to_date" placeholder="To Date...">

View .py

def search(request):
if request.method == 'GET':
from_date = request.GET.get('from_date')
to_date = request.GET.get('to_date')

"code to detect if from_date and to_date are incorrect formats???"

我想知道如何检测这种情况,然后在我的 Web 模板中打印错误。

最佳答案

Django 提供 forms ,其中 DateTimeField 可以处理日期时间格式问题。

不过,如果您想使用现有的代码,那么您可以执行以下实现:

import datetime

def search(request):
if request.method == 'GET':
from_date = request.GET.get('from_date')
to_date = request.GET.get('to_date')
input_formats = [
'%y-%m-%d %H:%M',
'%y-%m-%d',
]
from_date_validated = None
to_date_validated = None

for format in input_formats:
try:
from_date_validated = datetime.datetime.strptime(from_date, format)
except (ValueError, TypeError):
continue
try:
to_date_validated = datetime.datetime.strptime(to_date, format)
except (ValueError, TypeError):
continue
if not to_date_validated or not from_date_validated:
return render(request, 'error_page.html', context={'to_date_validated': to_date_validated, 'from_date_validated': from_date_validated})

并更新模板:

{% if not to_date_validated %}
Please enter proper to date
{% else %}
Please enter proper from date
{% endif %}

关于python - 在 Django 提交表单中输入错误格式(日期时间格式)时如何打印错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com