工做须要开发一个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+'"}')