Порт 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, чтобы два приложения могли обмениваться данными.