要求通過http://192.168.50.74/aptest/calc/?a=aa&c=00&b=bb進行訪問,參數a="aa",b="bb",c="00"
1.編寫url:瀏覽器會自動將?后面識別為參數。
urlpatterns = [ url(r'^calc/$', aptest.calc, name='calc'), ]
2.編寫view:
def calc(request): a = request.GET['a'] b = request.GET['b'] c = request.GET['c'] print a,b,c m = a+b+c return HttpResponse(str(m))
瀏覽器返回json類型結果:
import json def calc(request): a = request.GET['a'] b = request.GET['b'] c = request.GET['c'] print a,b,c m = a+b+c n = b+a rets = {"m":m,'n':n} retsj = json.dumps(rets) #返回json類型數據 {"m": "aabb00", "n": "bbaa"} return HttpResponse(retsj)
在瀏覽器中訪問http://192.168.50.74/aptest/calc/?a=aa&c=00&b=bb,返回值為:“aabb00”
其中http://192.168.50.74/aptest/calc為接口地址,a=aa&c=00&b=bb為所接收到的參數,如下圖所示:
在python中訪問該接口:
import urllib,urllib2,cookielib url = 'http://192.168.50.74/aptest/calc/?' #定義接口地址 headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko' } headers = {'User-agent':'Mozilla/5.0'} #---OK url_args = urllib.urlencode({ #定義參數 "a":'aa', "b":'bb', "c":'00'}) print url_args #返回:a=aa&c=00&b=bb
urls = '%s%s' %(url,url_args) print urls #返回:http://192.168.50.74/aptest/calc/?a=aa&c=00&b=bb req = urllib2.Request(url=urls,headers=headers) #需要添加一個header,否則會提示403forbidden print urllib2.urlopen(req).read() #返回:aabb00
#urllib2.urlopen()函數不支持驗證、cookie或者其它HTTP高級功能。要支持這些功能,必須使用build_opener()函數創建自定義Opener對象