2013-05-13 5 views
0

localhost:8000에서 (예를 들어) 실행중인 장고 프로젝트가 있습니다.이미지가로드되었는지 확인하는 방법은 무엇입니까?

이 주소의 이미지가 localhost:8000/static/test.jpg입니다. 사용자는 URL로 이동하여 포함 된 페이지를 열지 않고이 이미지 만 열 수 있습니다.

이 이미지가 사용자의 브라우저에로드되는지 (포함 페이지를로드하거나 이미지 URL을 입력하여) 해당 요청의 요청 개체를 가져오고 싶습니다.

특정 이미지에 대한 내보기에만 방법을 사용할 수 있습니까? 나는 인터넷을 통해 검색했지만 유용한 것을 찾지 못했습니다. 어떤 생각이나 해결책?

답변

0

을 나는 마침내 그것을했다. 예를 들어 localjost:8000/media/1.jpg에 파일이 있고이 URL을 입력 한 사용자의 IP를 가져와 1.jpg을로드하고 싶습니다.

나는 내 URL에이 라인을 추가했다 : url(r'^media/(?P<path>.*)$', 'project.views.serve','document_root': settings.MEDIA_ROOT,}), 그리고 나는 이미 MEDIA_ROOT를 설정했다. project.views.serve에서 나는 django.views.static.serve이라고 불렀고 그 결과를 HttpResponse로 반환했습니다. 난 내 project.views.serve에 요청 인수를 가지고 있고 나는 그에서 사용자의 IP를 얻기 위해 이런 짓을 :

x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') 
if x_forwarded_for: 
    ip = x_forwarded_for.split(',')[-1].strip() 
else: 
    ip = request.META.get('REMOTE_ADDR') 
print ip 
+0

네, 이것은 훌륭합니다. 나는 그것을했고 그것은 효과가 있었다. 고마워요 많이 –

+0

당신은 환영합니다 젠체하는 사람 – Kozet

0

당신은 hotlinking을 금지하는 것에 대해 이야기하고 있습니까? 이것은 Django 서버 앞에서 실행되는 웹 서버로보다 쉽고 효과적으로 할 수 있습니다.

아파치에 대한 몇 가지 예를 들어 만 사용자 지정보기와 이미지를 제공하여 https://wiki.apache.org/httpd/DisableImageHotLinking

+0

아니요, 내 친구에 대해서 말하고있는 것이 아닙니다. 나는 단지 요청을 원한다. 사용자가 이미지의 URL을 입력 할 때 얻는다. – Kozet

0

이 될 수를 확인하십시오. 예를 들어 정적 리소스를 반환 할 자신 만의 뷰를 작성해야하며 표준 장고 정적 핸들러를 사용하지 않아야합니다.

0

먼저 프로덕션 환경의 정적 파일 제공은 장고에서 처음 다루지 않아야합니다 장소. contrib/staticfiles/views.py :

정적 파일을 제공하기위한보기 및 기능. 이것들은 개발 중에 만 사용되며 프로덕션 환경에서는 사용하지 않아야합니다. 당신이 사용하고자하는 경우

는, 당신은 custom middleware은 당신의 물건을 할 process_view 또는 process_request에 접선 작성할 수 있습니다.

0

귀하의 방법은 높은 트래픽에 대한 미세하지만 봇 간다. 그럴 경우 XSendFile 아파치와 함께 작동하는 라이브러리 마녀를 사용할 수 있습니다

+0

맞아요하지만 나는 높은 트래픽에 직면하지 않아요;) 그런데 덕분에 – Kozet

관련 문제