Порт Web2py № сервера внутри приложения

Как получить номер порта на сервере (на котором развернуто приложение web2py) изнутри приложения web2py (например, для контроллера или модуля)?

Я использую urllib для взаимодействия с другим действием внутри контроллера, выполнив это

response = urllib2.urlopen('http://127.0.0.1:8000%s?%s'%(URL('unregister_relationship.json'),urllib.urlencode(data))) 
response = json.loads(response.read())

но для этого нужно, чтобы порт no был известен заранее, я хочу, чтобы он был динамическим.

1 ответ

URL() помощник берет scheme а также host аргументы для генерации абсолютного URL. Кроме того, нет необходимости использовать urllib.urlencode для генерации строки запроса, так как вы можете передать словарь как vars аргумент:

urllib2.urlopen(URL('unregister_relationship.json', vars=data, scheme='http', host=True))

В качестве альтернативы вы можете также рассмотреть возможность использования JSON-RPC, чтобы два приложения могли обмениваться данными.

Другие вопросы по тегам