Форум сайта python.su
0
Делаю сервер и возникла потребность принимать POST запросы на динамический URL. Т.е. сервер генерирует какой то уникальный URL, а клиент на этот адрес отправляет данные POST запросом.
Имеется такой код для работы со статическими адресами как к этому прикрутить обработку динамических URL?
class CustomResource(Resource): isLeaf = True def render_POST(self, request): self.process_confirm(request) return NOT_DONE_YET @defer.inlineCallbacks def process_confirm(self, request): post_data=self.get_data(request) print post_data try: response_body = yield self.process_data(post_data) except GetError as e: response_body = e.err_text() logging.error(response_body) print 'respbody', response_body response_body = json.dumps(response_body) request.write(response_body) request.finish() class Archiv(CustomResource): @defer.inlineCallbacks def process_data(self, post_data): #некая обработка запроса defer.returnValue(responce_body) root = Resource() archiv=Archiv() root.putChild('archiv', archiv) factory = Site(root) reactor.listenTCP(8880, factory) reactor.run()
Офлайн
25
O_o
from twisted.web import server, resource from twisted.internet import reactor class Simple(resource.Resource): isLeaf = True def render_POST(self, request): return 'Hi i am POST handler for: {}'.format(request.path) site = server.Site(Simple()) reactor.listenTCP(8001, site) reactor.run()
# curl -d 'hello' http://127.0.0.1:8001/ Hi i am POST handler for: / # curl -d 'hello' http://127.0.0.1:8001/foo Hi i am POST handler for: /foo # curl -d 'hello' http://127.0.0.1:8001/foo/bar Hi i am POST handler for: /foo/bar
Офлайн
0
s0rgНу собственно при таком коде я не знаю как работать со статическими адресами)
O_o
def getChildWithDefault(self, name, request): a= checkurl(name, self.pay_r) a=True if name == '': return self elif a: return self return Resource.getChild(self, name, request)
Офлайн
25
Вы можете, описать задачу целиком?
Офлайн
0
s0rgЗадача целиком:
Вы можете, описать задачу целиком?
Офлайн