我正在本地Win10 IIS上运行python CGI脚本。一切都很好。然后,我点安装了“ dateparser”以添加功能。 这导致了一个错误,我在这里引用(我的AJAX查询的结果):
将dateparser导入为dp
<模块>中第4行的文件“ C:\ Users \ fmoeller \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ dateparser__init __。py”
从.date导入DateDataParser
文件
从命令行运行脚本时,足够有趣的一切都能正常工作。
怎么了?
这是python脚本:
import os, sys
import json
from datetime import datetime
import dateparser as dp
def receive_data():
content_len = int(os.environ["CONTENT_LENGTH"])
req_body = sys.stdin.read(content_len)
my_dict = json.loads(req_body)
return my_dict
def process_data(my_dict):
raw = my_dict['dt']
try:
dt = dp.parse(raw, languages=['de'])
except ValueError:
processed = ''
else:
processed = datetime.strftime(dt, '%d.%m.%Y')
my_dict['dt'] = processed
return my_dict
def return_data(my_dict):
print('Content-Type: application/json\n\n')
print(json.dumps(my_dict))
if __name__ == '__main__':
# I have commented this out just for the test from the command line !!!
# my_dict = receive_data()
# also this line is only for command line test
my_dict = {'dt': '01022020'}
my_dict = process_data(my_dict)
return_data(my_dict)
尽管我认为没有必要,但这是调用javascript的部分:
<input id="input_bis" />
<script>
document.getElementById('input_bis').onkeypress = function (e) {
if (!e) e = window.event;
if (e.keyCode == '13') {
var value = this.value
$(function () {
$.ajax({
type: "POST",
url: "http://localhost/check_date.py",
data: JSON.stringify({ "dt": value}),
dataType: "json",
success: function (response) {
document.getElementById('input_bis').value = JSON.parse(JSON.stringify(response))['dt'];
},
error: function (ajaxContext) { alert(ajaxContext.responseText) },
});
});
return false;
}
}
</script>