django viewの中でrequest、reponseのよく使う操作
5889 ワード
問題の形式でいくつかの要求と応答のよくある書き方を記録して、django 1.8を例にして、持続的に蓄積して更新しています。
ここの住所http://blog.csdn.net/orangleliu/article/details/75226747
request post要求におけるjsonデータ を取得する。要求された情報に基づいてBase urlを取得する(サービスのドメイン名が多い場合もありますが、動的にurl情報を接続する必要があります) は、フォーム内で選択されたcheckbox情報、例えばcheckboxのnameはchecks である。
レスポンス jsonフォーマットの応答1.8バージョンはすでに レスポンスにcookiesとheader を設定します。
how to use sessionは、主にgetとsetと削除です。
ここの住所http://blog.csdn.net/orangleliu/article/details/75226747
request
def hello(request):
data = json.loads(request.body)
...
jsonフォーマットには、他にもいくつかの
のフォーマットがあります。いずれもレクエスト.bodyから要求体のデータを取得できます。ajax要求についてはrequest.is_ajax()
を使用して判断してもいいです。# url http://wificdn.com:8888/wxpay/qrcode2/16122010404238801544?name=lzz
request.get_host() # wificdn.com:8888
request.get_full_path() # u'/wxpay/qrcode2/16122010404238801544?name=lzz'
request.build_absolute_uri('/') # 'http://wificdn.com:8888/'
request.build_absolute_uri('/hello') # 'http://wificdn.com:8888/hello'
request.build_absolute_uri() # 'http://wificdn.com:8888/wxpay/qrcode2/16122010404238801544?name=lzz'
request.path # u'/wxpay/qrcode2/16122010404238801544'
request.scheme # 'http'
var_list = request.POST.getlist('checks')
戻るのはリストオブジェクトで、ない場合は、[]
に戻る。フォームにこのkeyがない場合は、[]
に戻る。レスポンス
JsonResponse
を提供しています。from django.http import JsonResponse
は使えます。低いバージョンのdjangoはソースを参照して自分で書いてもいいです。def xxxxview(request):
....
resp = HttpResponseRedirect('/account/portal/?token=%s' % es)
resp.set_cookie("coofilter", es, max_age=300)
resp['Erya-Net-Type'] = NET_TYPE
resp['Erya-Auth-Host'] = AUTH_HOST
resp['Erya-Auth-Port'] = AUTH_PORT
resp['Erya-Auth-Uip'] = ip
resp['Erya-Auth-Token'] = es
return resp
セッションhow to use sessionは、主にgetとsetと削除です。
def post_comment(request, new_comment):
if request.session.get('has_commented', False):
return HttpResponse("You've already commented.")
c = comments.Comment(comment=new_comment)
c.save()
request.session['has_commented'] = True
return HttpResponse('Thanks for your comment!')
def logout(request):
try:
del request.session['member_id']
except KeyError:
pass
return HttpResponse("You're logged out.")
cookiesdef login(request):
response = HttpResponseRedirect('/url/to_your_home_page')
response.set_cookie('cookie_name1', 'cookie_name1_value')
response.set_cookie('cookie_name2', 'cookie_name2_value')
return response
def logout(request):
response = HttpResponseRedirect('/url/to_your_login')
response.delete_cookie('cookie_name1')
response.delete_cookie('cookie_name2')
return response
#
coo = request.COOKIES.get('coofilter')
# cookies
hr.set_cookie('user_id', user_id, max_age=300)