工做須要開發一個python功能,本人Java出身,經過Process調用時,可能會有各類問題,以前吃過c/c++程序的虧,基於本身的python功底,咬咬牙,腦殼一熱,決定開發一個python語言基於Digngo的web程序,Java經過http請求完成調用,出問題翻遍查找。html
一、建立項目python
參照文檔:http://www.runoob.com/django/django-first-app.htmlc++
安裝步驟:pip install djangoweb
建立項目:cd 到要建立項目的目錄django
django-admin startproject HelloWorld(項目名)json
運行項目:python manage.py runserver 0.0.0.0:8000 瀏覽器
manage.py位置在第一層項目名下。cookie
訪問地址:http://localhost:8000/admin/數據結構
用戶名 admin 密碼adminapp
建立請求:一、./HelloWorld/HelloWorld 目錄下新建view.py,寫入以下內容:
from django.http import HttpResponse def hello(request): return HttpResponse("Hello world ! ")
二、修改urls.py,在urlpatterns中添加內容,url(r'^$',view.hello),最後的逗號必須有。
三、從新啓動項目,瀏覽器輸入請求地址:http://localhost:8001/ 便可看到返回結果。
二、異常處理
Java請求python項目時報錯,Forbidden (CSRF cookie not set.): xxx,解決方式是,修改settings.py文件,註釋掉
django.middleware.csrf.CsrfViewMiddleware',
三、請求處理
建立項目沒有花費多少時間,主要耗費在處理功能請求上,python的get和post請求和Java有很大不一樣,它固定了數據結構,統一使用
QueryDict,這個結構是一種支持一個key ,多個value,value中又有key和value的數據結構,感受和json相似。如下是我用一個String請求後,獲取數據對象的方法。
def add(request): context=""; if request.method == 'POST': for key in request.POST: context=key else: # for key in request.GET: # context=key return HttpResponse('{"code":102,"message":"不支持get請求,請使用post請求"}') return HttpResponse('{"code":0,"message":"操做成功,請求數據'+context+'"}')