- home.html
<!DOCTYPE html>
<html>
<head>
<title>Django webserver</title>
</head>
<body>
<a href="/add/4/5/">計算 4+5</a>
</body>
</html>
-
用render渲染模板:
因為需要調(diào)用模板炭序,需要將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')
為了避免重名導(dǎo)致的模板導(dǎo)入失敗,我們多加了一級文件夾 calc 。
在修改了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="/add/4/5/">計算 4+5</a>
改為活鏈接: <a href="{% url 'add2' 4 5 %}">計算 4+5</a>
(內(nèi)部的 / 用空格替代了 , 如果想輸字符的話要用'aaaa'而不是aaaa)
Django 會在渲染的時候把它對應(yīng)于name為'add2'的url:
url(r'^new_add/(\d+)/(\d+)/$',calc_views.add2,name='add2'),
點擊后自動切換到 new_add
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 肛走。
)