我正在努力从URL输入中获取日期值,可以添加/减去天数,显示“这是错误的日期输入,亲爱的客户”,例如下面的输入
输入:
http://.../data?date=2022-01-01&diff=5&op={add,del}
http://.../data?date=2022-01-01&diff=13&op=add
期望输出:
差异为:5
日期是:2022-01-01
新日期是:2022-01-14
from datetime import datetime, timedelta
from flask import Flask, request
from datetime import date, datetime, time ,timedelta
# python testcodefmweb_clone.py
app = Flask(__name__)
@app.route('/data')
def query_example():
date = request.args['date']
diff = request.args['diff']
diff_int = int(diff)
diff_date = int(date)
date_in_system = datetime.strptime( date, "%Y-%m-%d")
new_date = date_in_system + datetime.timedelta(days = diff_int)
return '''
<h1>The diff is: {}</h1>
<h1>The date is: {}</h1>
<h1>The new_date is: {}'''.format(diff, date_in_system , new_date)
if __name__ == '__main__':
# run app in debug mode on port 5000
app.run(debug=True, port=5000)
我搜到
[try] [except]
可以帮助显示“亲爱的顾客,日期输入错误~”
现在我正在准备添加、删除操作以添加/减去天数,并显示错误输入的错误
from datetime import datetime, timedelta
from flask import Flask, request
from datetime import date, datetime, time ,timedelta
app = Flask(__name__)
@app.route('/data')
def query_example():
date = request.args['date']
diff = request.args['diff']
diff_int = int(diff)
date_in_system = datetime.strptime( date, "%Y-%m-%d")
new_date_add = date_in_system + timedelta(days = diff_int )
new_date_minus = date_in_system - timedelta(days = diff_int )
return '''
<h1>The diff is: {}</h1>
<h1>The date is: {}</h1>
<h1>The new_date_minus is: {}</h1>
<h1>The new_date_add is: {}'''.format(diff, date_in_system , new_date_minus ,new_date_add)
if __name__ == '__main__':
# run app in debug mode on port 5000
app.run(debug=True, port=5000)
正在努力将
[try] [except]
用于在代码中显示用户错误“抱歉,输入错误亲爱的顾客~”
第三个放
[try] [except]
该网站无法正常工作from datetime import datetime, timedelta
from flask import Flask, request
from datetime import date, datetime, time ,timedelta
app = Flask(__name__)
@app.route('/data')
def query_example():
date = request.args['date']
diff = request.args['diff']
diff_int = int(diff)
date_in_system = datetime.strptime( date, "%Y-%m-%d")
new_date_add = date_in_system + timedelta(days = diff_int )
new_date_minus = date_in_system - timedelta(days = diff_int )
try:
datetime.datetime.strptime(date, "%Y-%m-%d")
return '''
<h1>The diff is: {}</h1>
<h1>The date is: {}</h1>
<h1>The new_date_minus is: {}</h1>
<h1>The new_date_add is: {}'''.format(diff, date_in_system , new_date_minus ,new_date_add)
except ValueError:
print("sorry, wrong input for date dear customer~")
if __name__ == '__main__':
# run app in debug mode on port 5000
app.run(debug=True, port=5000)
解决了!看下面的代码
import datetime
from datetime import datetime, timedelta
from flask import Flask, request
from datetime import date, datetime, time ,timedelta
app = Flask(__name__)
@app.route('/data')
def query_example():
try:
date = request.args['date']
diff = request.args['diff']
op = request.args.get('op')
diff_int = int(diff)
date_in_system = datetime.strptime( date, "%Y-%m-%d")
new_date_add = date_in_system + timedelta(days = diff_int )
new_date_minus = date_in_system - timedelta(days = diff_int )
final_date = 0
if op == "add":
final_date = date_in_system + timedelta(days = diff_int )
if op == "del":
final_date = date_in_system - timedelta(days = diff_int )
except Exception as e:
return '''
<h1>捕捉錯誤資訊: {}</h1>
'''.format(diff+ str(e))
return '''
<h1>The diff is: {}</h1>
<h1>The date is: {}</h1>
<h1>The op is: {}</h1>
<h1>The final_date is: {}'''.format(diff, date_in_system , op, final_date)
if __name__ == '__main__':
# run app in debug mode on port 5000
app.run(debug=True, port=5000)
我认为您需要将
new_date = date_in_system + datetime.timedelta(days = diff_int)
更改为 new_date = date_in_system +timedelta(days = diff_int)
,因为您导入了 timedelta
。
您的预期输出应该是:
The diff is: 5
The date is: 2022-01-01
The new_date is: 2022-01-06
如果新日期是
2022-01-06
而不是 2022-01-14
,下面的代码片段应该可以满足您的需求:
from datetime import date, datetime, timedelta
date = "2022-01-01"
diff_int = 5
date_in_system = datetime.strptime( date, "%Y-%m-%d")
new_date = date_in_system + timedelta(days = diff_int)
print(new_date)