- home.html
<!DOCTYPE html>
<html>
<head>
<title>Django webserver</title>
</head>
<body>
<a href="//www.greatytc.com/add/4/5/">计算 4+5</a>
</body>
</html>
-
用render渲染模板:
因为需要调用模板,需要将APP置于Install_APP的列表中:
这样,使用render的时候,Django 会自动找到 INSTALLED_APPS 中列出的各个 app 下的 templates 中的文件。
from django.http import HttpResponse
from django.shortcuts import render
def index(request):
#return render(request, 'home.html')
return render(request, 'calc/home.html')
为了避免重名导致的模板导入失败,我们多加了一级文件夹 calc 。
image.png
在修改了urls.py中的映射后为了不必修改所有页面上的超链接该怎么办 ?
urlpatterns = [
url(r'^admin/', admin.site.urls),
#url(r'^add/(\d+)/(\d+)/$',calc_views.add2,name='add2'),
url(r'^new_add/(\d+)/(\d+)/$',calc_views.add2,name='add2'),
]
把add改为new_add后:
<!DOCTYPE html>
<html>
<head>
<title>Django webserver</title>
</head>
<body>
<a href="{% url 'add2' 4 5 %}">计算 4+5</a>
</body>
</html>
需要将 <a href="//www.greatytc.com/add/4/5/">计算 4+5</a>
改为活链接: <a href="{% url 'add2' 4 5 %}">计算 4+5</a>
(内部的 / 用空格替代了 , 如果想输字符的话要用'aaaa'而不是aaaa)
Django 会在渲染的时候把它对应于name为'add2'的url:
url(r'^new_add/(\d+)/(\d+)/$',calc_views.add2,name='add2'),
点击后自动切换到 new_add
image.png
Url 迁移了后的客户端怎么办 ?
-
urls.py
#添加新的映射:
url(r'^add/(\d+)/(\d+)/$', calc_views.old_add2_redirect),
url(r'^new_add/(\d+)/(\d+)/$', calc_views.add2, name='add2'),
-
views.py
from django.http import HttpResponseRedirect
from django.urls import reverse
# new in django 1.10.x
def old_add2_redirect(request, a, b):
return HttpResponseRedirect(
reverse('add2', args=(a, b))
#将a与b映射到add2这个url 。
)