Python編寫API接口


要求通過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對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM