동일한 프로젝트의 애플리케이션 간 URL 전달


1

API를 모형화하고 Django에서 별도의 앱을 사용하여 다양한 웹 서비스를 나타냅니다. App B가 App B에 해당하는 링크를 가져 와서 json 응답을 파싱하고 싶습니다.

App B에 대한 URL을 동적으로 구성하여 개발시 코드를 테스트하고 프로덕션 환경으로 이전하기 전에 변경하지 않을 방법이 있습니까? 문제는 링크의 일부로 localhost를 사용할 수 없다는 것입니다.

현재 urllib를 사용하고 있지만, 궁극적으로 웹 서비스 REST 패러다임을 사용하여 덜 해킹하고 잘하고 싶습니다.

2

당신은

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

같이 할 외부 URL을 구축하기 위해 다른 사용할 수 있습니다. 일반적으로 DEBUG 모드로 코딩하고 DEBUG이 아닌 모드로 배포합니다. .DEBUG는 '표준'장고입니다.

  0

platform.node()도이 작업에 유용합니다 (플랫폼 모듈은 표준 라이브러리의 일부 임). 25 sep. 082008-09-25 03:46:05


1

"장고 내 별도의 응용 프로그램"이란 공통 설정으로 응용 프로그램을 분리한다는 의미입니까? 즉, 동일한 Django 사이트 (또는 프로젝트) 내의 두 개의 응용 프로그램입니까?

그렇다면 {% url %} 태그는 설정 파일에 나열된 모든 앱에 대한 적절한 절대 URL을 생성합니다.

별도의 설정으로 별도의 장고 서버가있는 경우 URI 디자인이라는 표준 인터넷 문제가 발생합니다. URI는 호스트 이름 만 바뀌어도 일치 할 수 있습니다.

- 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 

당신은 당신의 연결의 그래서 모두가 <A HREF="/some/path/">를하고, 호스트 정보를 제공 할 필요가 없습니다.

일반적으로 가장 잘 작동합니다. 누군가의 임의의 랩톱을 테스트 서버로 사용할 수 있습니까? ifconfig를 사용하여 IP 주소를 얻을 수 있습니다.

  0

템플릿이 아닌 다른 곳에서 {% url %} 기능을 어떻게 사용합니까? 24 sep. 082008-09-24 18:44:19

  0

model.get_absolute_url() 24 sep. 082008-09-24 23:48:24

  0

django.core.urlresolvers.reverse (docs)를 사용하여 모델의 절대 URL뿐만 아니라 URL을 얻을 수도 있습니다. 25 sep. 082008-09-25 03:45:24