在网页上经常要输入账号或者登陆密码之类的,这些信息有些是通过url中的参数传递给后台进行处理的
比如http://127.0.0.1:8001/add/?a=4&b=5。 这个链接传入a=4,b=5.后台将进行a+b的处理
新增处理函数
def add(request):
a=request.GET['a']
b=request.GET['b']
return HttpResponse(str(int(a)+int(b)))
在urlpatterns中添加url(r'add/',views.add),得到的链接如下
url也可以写成如下形式:http://127.0.0.1:8001/add/4/5 相应的处理函数改成如下。传递具体的参数给函数
def add(request,a,b):
return HttpResponse(str(int(a)+int(b)))
模板:
在前面讲到函数可以直接到定向到templates中的网页。其实还可以参数给网页,然后在网页中显示出来
如下的home函数,传递一个string参数给index.html
def home(request):
string=u"网页测试"
return render(request,'index.html',{'string':string})
网页中添加{{string}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1 style="background-color:antiquewhite;color:black;<span lang="EN-US" style="" color:green;"="">"/>hello Django</h1>
{{ string }}
</body>
</html>
还可以传递列表给网页
def home(request):
list=["HTML","java","python"]
return render(request,'index.html',{'list':list})
网页中添加如下:
{% for i in list %}
{{ i }}
{% endfor %}
还可以传入字典:
def home(request):
string=u"网页测试"
list=["HTML","java","python"]
info={'state':u'Django','Content':u'Django学习'}
return render(request,'index.html',{'info':info})
{% for key,value in info.items %}
{{ key }}:{{ value }}
{% endfor %}
模板中还可以获取当前的网址以及用户。只要在settings.py中添加django.template.context_processors.request以及django.contrib.messages.context_processors.messages
{{ request.user }}
{{ request.path }}