Код:
Запуск сервера
from twisted.application import internet, service, strports
from twisted.web2 import server, channel
from testclacc import TestClass
from twisted.internet import reactor
application = service.Application("tizerserver")
port = 8080
site = server.Site(TizerWeb())
s = strports.service('tcp:' + str(port), channel.HTTPFactory(site))
s.setServiceParent(application)
reactor.run()
from twisted.web2 import server, http, resource
from twisted.web2 import http_headers, responsecode
from twisted.web2 import iweb
from twisted.internet import reactor, threads, defer
from longcalculations import LongCalc
def _httpResponse(code,text):
return http.Response(
code,
{'content-type': http_headers.MimeType('text', 'html')},
"""<html><body>%s</body></html>""" % (text))
class TestClass(resource.PostableResource):
def locateChild(self, request, segments):
return (self, server.StopTraversal)
def render(self, ctx):
request = iweb.IRequest(ctx)
# FIX remote address
try:
request.remoteAddr.host = request.headers.getRawHeaders('X-Real-Ip')[0]
except:
pass
request.referer = 'None'
request.useragent = 'NoUA'
try:
request.referer = request.headers.getRawHeaders('referer')[0]
request.useragent = request.headers.getRawHeaders('user-agent')[0]
except:
pass
# dispatch request
request.postpath = [p for p in request.postpath if p]
if len(request.postpath) < 2:
return _httpResponse(responsecode.OK, 'Great Universe')
else:
action = request.postpath.pop(0)
id_par = request.postpath.pop(0)
render = 'fl_' + action
if hasattr(self, render):
return getattr(self, render)(request, id_par)
else:
return _httpResponse(response.NOT_FOUND,
'Action Not Found %s' % (render))
def fl_test(self, request, parameter):
##################
# Здесь нужно вызвать функцию LongCalc().doLongCalc()
##########################
return _httpResponse(responsecode.OK, data_from_long_calc)
Помогите плз.