Passando em torno de urls entre as aplicações no mesmo projeto

votos
1

Eu estou tentando mock-up de uma API e estou usando aplicativos separados dentro de Django para representar diferentes serviços web. Gostaria App à tomar em um link que corresponde a App B e analisar a jsonresposta.

Existe uma maneira de construir dinamicamente a url a App B para que eu possa testar o código em desenvolvimento e não mudar para muito antes de entrar em produção? O problema é que eu não posso usar localhost como parte de um link.

Atualmente, estou usando urllib, mas, eventualmente, eu gostaria de fazer algo menos hacky e melhor montagem com o serviços web RESTparadigma.

Publicado 23/09/2008 em 22:47
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

Você poderia fazer algo assim

if settings.DEBUG:
  other = "localhost"
else:
  other = "somehost"

e usar outro para construir a URL externa. Geralmente você código no modo de depuração e implantar no modo não-depuração. settings.DEBUG é um Django coisa 'standard'.

Respondeu 23/09/2008 em 22:51
fonte usuário

votos
1

Por "apps separados dentro Django" você quer dizer aplicativos separada com configurações comuns? Ou seja, duas aplicações no mesmo site Django (ou projeto)?

Se assim for, o {% url%} tag irá gerar uma URL absoluta adequada para qualquer um dos aplicativos listados no arquivo de configurações.

Se houver servidores Django separados com configurações separadas, você tem o problema padrão internet do design URI. Seu URI de pode ser consistente com apenas a mudança hostname.

- http://localhost/some/path - development

- http://123.45.67.78/some/path - someone's laptop who's running a server for testing

- http://qa.mysite.com/some/path - QA

- http://www.mysite.com/some/path - production

Você nunca precisa fornecer a informação da máquina, de modo que todos os seus links são <A HREF="/some/path/">.

Este, geralmente, trabalha para fora o melhor. Você tem puder laptop aleatória de alguém ser um servidor de teste; você pode obter o endereço IP usando ifconfig.

Respondeu 23/09/2008 em 23:52
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more