django 视图装饰器

视图装饰器:

Django 为视图提供了数个装饰器,用以支持相关的HTTP服务 


允许的方法:

url(r'^test004/$', views.my_view),
  
  
from django.views.decorators.http import require_http_methods

@require_http_methods(["GET", "POST"])
def my_view(request):
    print "call my_view" 
	
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
import json
import httplib
import re
import requests
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
import json
import httplib
import re
import requests
s=requests.session()
headers = {'Content-Type': 'application/json'}  ## headers中添加上content-type这个参数,指定为json格式
print headers
response = s.get('http://192.168.137.3:8000/polls/test004/',  headers=headers)
print response
print response.content


call my_view
<WSGIRequest: GET '/polls/test004/'>
[20/Aug/2018 17:09:53] "GET /polls/test004/ HTTP/1.1" 200 4


换成post呢?

Forbidden (CSRF cookie not set.): /polls/test004/

# !/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
import json
import httplib
import re
import requests
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
import json
import httplib
import re
import requests
s=requests.session()
headers = {'Content-Type': 'application/json'}  ## headers中添加上content-type这个参数,指定为json格式
print headers
datas={}
response = s.post('http://192.168.137.3:8000/polls/test004/', data=datas ,headers=headers)
print response
print response.content


C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/core/a26.py
{'Content-Type': 'application/json'}
<Response [200]>
aaaa

<WSGIRequest: POST '/polls/test004/'>
[20/Aug/2018 17:13:53] "POST /polls/test004/ HTTP/1.1" 200 4





# !/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
import json
import httplib
import re
import requests
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
import json
import httplib
import re
import requests
s=requests.session()
headers = {'Content-Type': 'application/json'}  ## headers中添加上content-type这个参数,指定为json格式
print headers
datas={}
response = s.put('http://192.168.137.3:8000/polls/test004/', data=datas ,headers=headers)
print response
print response.content

C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/core/a26.py
{'Content-Type': 'application/json'}
<Response [405]>


Method Not Allowed (PUT): /polls/test004/
[20/Aug/2018 17:14:33] "PUT /polls/test004/ HTTP/1.1" 405 0


call my_view
<WSGIRequest: PUT '/polls/test004/'>
[20/Aug/2018 17:17:09] "PUT /polls/test004/ HTTP/1.1" 200 4
原文地址:https://www.cnblogs.com/hzcya1995/p/13349081.html