说明:此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
from django.shortcuts import render
from django.http import HttpResponse
#展示链接的页面
def getTest1(request):
return render(request, 'booktest/getTest1.html')
#展示接收一键一值
def getTest2(request):
a1 = request.GET['a']
b1 = request.GET['b']
c1 = request.GET['c']
#构造上下文
context = {'a':a1,'b':b1,'c':c1}
#向模板中传递上下文,并进行渲染
return render(request, 'booktest/getTest2.html', context)
#展示一键多值
def getTest3(request):
#a1 = request.GET['a'] #并不能取多值,而是取值为最后的参数值;
#一键多值,获得是是一个列表
a1 = request.GET.getlist('a')
context = {'a':a1}
return render(request, 'booktest/getTest3.html',context)
创建视图函数中指向的html文件:
与应用名称booktest同级目录下,创建模板目录并在其下创建与应用同名目录用来存放html模板文件:
mkdir templates/booktest
编写视图函数中指定的html模板文件:
vim templates/booktest/getTest1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://×××w.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>展示接收一键一值</h2><a href="/booktest/getTest2/?a=1&b=2&c=3">test2</a>
<br>
<h2>展示接收一键多值</h2><a href="/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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://×××w.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>展示一键多值</h2>
{{ a }}
</body>
</html>
配置应用的url:
在应用名称目录下创建urls.py:
from django.conf.urls import url
from . import views
urlpatterns = [
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
...
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^booktest/',include('booktest.urls',namespace='booktest')),
]
...
在settings.py文件中配置templates模板路径:
import os
BASE_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
显示:
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。