Python @钩子和@route未被执行
我将AJAX请求发送到pythonscript“scripts/serverscript.py”,原因是@hook('before_request'),并且 @路由('scripts/serverscript.py')未执行?有关如何调试此路由并修复此问题的任何输入 AJAX调用:-Python @钩子和@route未被执行,python,ajax,bottle,beaker,Python,Ajax,Bottle,Beaker,我将AJAX请求发送到pythonscript“scripts/serverscript.py”,原因是@hook('before_request'),并且 @路由('scripts/serverscript.py')未执行?有关如何调试此路由并修复此问题的任何输入 AJAX调用:- $.ajax({ dataType: "json", type: "POST", url: "scripts/
$.ajax({
dataType: "json",
type: "POST",
url: "scripts/serverscript.py",
//data: data,
data: JSON.stringify(data_SU),
error : function (xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
console.log("error return for server");
},
serverscript.py
#!/usr/bin/python
import bottle
from beaker.middleware import SessionMiddleware
from bottle import hook,route
import sys
import json
result = {'success':'true','message':'The Command Completed Successfully'}
myjson = json.load(sys.stdin)
print 'Content-Type: application/json\n\n'
print json.dumps(result)
session_opts = {
'session.type': 'file',
'session.data_dir': './session/',
'session.auto': True,
}
app = SessionMiddleware(bottle.app(), session_opts)
@hook('before_request')
def setup_request():
result['message'] = r'insetup result'
print 'Content-Type: application/json\n\n'
print json.dumps(result)
request.session = request.environ['beaker.session']
@route('scripts/serverscript.py')
def index():
result['message'] = r'in - index'
data = { 'procesing': "in index" }
print json.dumps(data)
if 'processing' in request.session:
data = { 'procesing': request.session['processing'] }
print json.dumps(data)
return data
processor()
def processor():
result['message'] = r'in - processor'
request.session['processing'] = 1
#print "in processor"
# Do some processing here for the first request
# When processing is done you can clear "state" variable in session
cherrypick.cp_main()
del request.session['processing']
request.session.modified = True
把Javascript从等式中去掉。当您直接点击服务器时,会发生什么?路由有效吗?@ron.rothman-当我直接运行`python serverscript.py`时,脚本就挂起了……是的,这不是它应该做的吗?毕竟,它是一个服务器——它应该等待并侦听请求。我遗漏了什么吗?你没有运行服务器。您需要调用
battle.run()
。考虑一下读写得很好,来解释如何运行它。我感觉到你对Python是新的。也许你应该在一个比这更不高级的任务上练习。让应用服务器正确地与AJAX客户机一起工作并不是件小事。也许从更直接的事情开始。(不是试图居高临下,只是试图帮助引导。)将Javascript从等式中剔除。当您直接点击服务器时,会发生什么?路由有效吗?@ron.rothman-当我直接运行`python serverscript.py`时,脚本就挂起了……是的,这不是它应该做的吗?毕竟,它是一个服务器——它应该等待并侦听请求。我遗漏了什么吗?你没有运行服务器。您需要调用battle.run()
。考虑一下读写得很好,来解释如何运行它。我感觉到你对Python是新的。也许你应该在一个比这更不高级的任务上练习。让应用服务器正确地与AJAX客户机一起工作并不是件小事。也许从更直接的事情开始。(不是居高临下,只是想帮助引导。)