2011-12-13 27 views

Trả lời

9

Bạn có thể nhận thông tin thông qua HttpRequest. Kiểm tra Tài liệu Django here.

Điều này có thể được truy cập thông qua thuộc tính META là một từ điển chứa thông tin tiêu đề HTTP.

Ví dụ:

def someView(request): 
    #Try printing to screen 
    print request.META['SERVER_PORT'] 
    ... 
    return(response) 
+0

'SERVER_PORT' có tồn tại đáng tin cậy không, hoặc có nguy cơ đôi khi nó sẽ không có mặt? – exupero

+0

tốt, theo như tôi có thể nói nó sẽ hoạt động tốt trên một máy chủ phát triển. Tôi đã không cố gắng sử dụng nó chạy dưới Apache. Tôi sẽ viết một chút mã kiểm tra để kiểm tra lại mặc dù. Nếu không, tôi không chắc chắn làm thế nào khác bạn sẽ tìm ra mà không đi qua các đối tượng yêu cầu. –

+3

Nếu bạn không ở trong chế độ xem thì sao? – johnboiles

3

có thể request.META['SERVER_PORT']

hoặc bạn không ở chế độ xem?

+12

Có giải pháp nào khi tôi không ở trong chế độ xem không? – utapyngo

0

Tôi thấy điều này có thể hữu ích nếu bạn cần phải biết số cổng hoặc địa chỉ IP ra khỏi quan điểm

import sys 
import socket 
logger.error(socket.gethostbyname(socket.gethostname())+"----"+sys.argv[-1]) 

(trong models.py ví dụ.) Điều này sẽ cung cấp cho bạn một kết quả như sau:

192.168.1.222----0.0.0.0:8000 
+0

@utapyngo Đây là giải pháp khi bạn không ở trong chế độ xem. –

Các vấn đề liên quan