说明:此django的项目名称为test3,应用名称为booktest。

使用的python3.5.2版本,django版本是1.8.2。

所有操作都是在cd test3目录下进行演示的。


本次演示HTTP使用GET方法,在python中获取其参数值:可分类为一键一值和一键多值;

一键一值例如:http://192.168.255.70/booktest/getTest2/?a=1&b=2&c=3

一键多值例如:http://192.168.255.70/booktest/getTest2/?a=1&a=2&a=3


在应用名称目录下编写视图函数:

vim booktest/views.py

fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponse#展示链接的页面defgetTest1(request):returnrender(request,'booktest/getTest1.html')#展示接收一键一值defgetTest2(request):a1=request.GET['a']b1=request.GET['b']c1=request.GET['c']#构造上下文context={'a':a1,'b':b1,'c':c1}#向模板中传递上下文,并进行渲染returnrender(request,'booktest/getTest2.html',context)#展示一键多值defgetTest3(request):#a1=request.GET['a']#并不能取多值,而是取值为最后的参数值;#一键多值,获得是是一个列表a1=request.GET.getlist('a')context={'a':a1}returnrender(request,'booktest/getTest3.html',context)

创建视图函数中指向的html文件:

与应用名称booktest同级目录下,创建模板目录并在其下创建与应用同名目录用来存放html模板文件:

mkdir templates/booktest


编写视图函数中指定的html模板文件:

vim templates/booktest/getTest1.html

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://×××w.w3.org/TR/html4/loose.dtd"><html><head><title>Title</title></head><body><h2>展示接收一键一值</h2><ahref="/booktest/getTest2/?a=1&b=2&c=3">test2</a><br><h2>展示接收一键多值</h2><ahref="/booktest/getTest3/?a=1&a=2&a=3">test3</a></body></html>

注意:

a标签中的href=/booktest/getTest2与herf=booktest/getTest2,两者区别是不同的,有根/表示从网站的根目录下即域名下,如有/表示×××w.magedu.com/booktest;没有/根,则表示在当前页面下,是相对于当前页面路径下。


vim templates/booktest/getTest2.html

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://×××w.w3.org/TR/html4/loose.dtd"><html><head><title>Title</title></head><body><h2>展示一键一值</h2>a:{{a}}<hr>b:{{b}}<hr>c:{{c}}</body></html>

vim templates/booktest/getTest3.html

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://×××w.w3.org/TR/html4/loose.dtd"><html><head><title>Title</title></head><body><h2>展示一键多值</h2>{{a}}</body></html>

配置应用的url:

在应用名称目录下创建urls.py:

fromdjango.conf.urlsimporturlfrom.importviewsurlpatterns=[url(r'getTest1/$',views.getTest1),url(r'getTest2/$',views.getTest2),url(r'getTest3/$',views.getTest3),]

配置主url文件:

在项目名称test3目录下,创建应用时,会自动生成一个test3目录在其中存放的都是全局的配置文件,例如settings.py、usrs.py等:

vim test3/urls.py

...fromdjango.conf.urlsimportinclude,urlfromdjango.contribimportadminurlpatterns=[url(r'^admin/',include(admin.site.urls)),url(r'^booktest/',include('booktest.urls',namespace='booktest')),]...

在settings.py文件中配置templates模板路径:

importosBASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))ROOT_URLCONF='test3.urls'TEMPLATES=[{...'DIRS':[os.path.join(BASE_DIR,'templates')],...}]

启动web服务器:

python manage.py runserver 192.168.255.70:8000


浏览器访问:http://192.168.255.70:8000/booktest/getTest1/

显示:


点击test2,url变为:http://192.168.255.70:8000/booktest/getTest2/?a=1&b=2&c=3

显示:


点击test3,url变为:http://192.168.255.70:8000/booktest/getTest3/?a=1&a=2&a=3

显示: