diadia

興味があることをやってみる。自分のメモを残しておきます。

django:リクエストヘッダの内容を取得する まとめ

POST/GETの判別
HTMLフォームから送信されたパラメータが、どのメソッドで送信されたかを調べる方法

if request.method == 'POST':
# POSTでパラメータを送ってきたときの処理
...
else:
# GETでパラメータを送ってきたときの処理
...


HTTP リクエストヘッダーを取得する
User-Agentなど、クライアントが送信する情報を取得したいときも、同じようにそれ用のDictionaryがある

userAgent = request.META.get('HTTP_USER_AGENT', None)

これを少し変えるとユーザーのIPも取得できる。

def get_client_ip(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip