Django 用模板來節省公共代碼,

      若是咱們有一個後臺網站,或者顯示我的信息的網站 標題logo,邊框等信息的代碼都是固定的,只有部分區域是改變,html

咱們若是用Django來寫html的話就會重複代碼.這時候咱們只要用模板的方式把須要改變的代碼塊引入,django

增長項目的時候也只須要增長鬚要插入的代碼便可app

 

以下圖咱們要寫一個相似的網頁:網站

 

 

 

點擊已購商品時會出現:url

 

點擊購物車後會出現:spa

:code

 

左側菜單是用A標籤來寫的連接,若是正常來寫,咱們有幾個連接就要寫幾個基本內容相同的網頁,只是棕色的顯示區域內容不一樣.如今咱們有新的寫法去改變這一現象:htm

 

 

1 首先咱們寫一個HTML叫base.htmlblog

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .head{
            height: 50px;background-color: steelblue;text-align: center;color: red;font-size: 22px;
        }
        .center{
            height: 800px;
        }
        .left{
            width: 25%;background-color: tan;height: 800px;float: left;
        }
        .left a{display: block;color: black;font-size: 22px}
        .right{
            width: 75%;background-color: saddlebrown;height: 800px;float: left;
        }
        .button{
            height: 50px;background-color: steelblue;
        }
        .buy{
            color: darkkhaki;font-size: 30px;
        }
    </style>
</head>
<body>
    <div class="head">個人購物信息</div>
    <div class="center">
        <div class="left">
            <a href="/buy/">已購商品</a>
            <a href="/shoppingcar/">購物車</a>
            <a href="/collection/">收藏夾</a>
        </div>
        <div class="right">
            {% block rightbox %}

            {% endblock %}
        </div>
    </div>
    <div class="button">底部欄</div>
</body>
</html>

 

 

這裏咱們發現這裏的代碼什麼都沒有多了個{% block rightbox %} {% endblock %} 這就是固定的格式,告訴咱們將要把須要引入的代碼放入這裏 , rightbox 是咱們區分代碼塊起的名字文檔

而這個base.html就是咱們的模板網頁,咱們並不直接訪問這個網頁

 

2   咱們的左側菜單裏有已購商品 ,購物車,收藏夾,那麼咱們就須要有3個html文檔

如今咱們給已購商品寫一個buy.html,看看要怎麼寫:

 

咱們在模板base.html裏用了

因此咱們還要去寫views 和urls裏去寫其餘的代碼:

 1 from django.shortcuts import render,HttpResponse
 2 
 3 # Create your views here.
 4 
 5 def buy(req):
 6    return render(req,"buy.html")
 7 
 8 def base(req):
 9     return render(req,"base.html")
10 
11 def collection(req):
12     return render(req, "collection.html")
13 
14 def shoppingcar(req):
15     return  render(req,"shoppingcar.html")
16 
17 def mod(req):
18     return  render(req,"mod.html")
 1 from django.contrib import admin
 2 from django.urls import path
 3 from t_app import views
 4 
 5 urlpatterns = [
 6     path('admin/', admin.site.urls),
 7     path(r'buy/', views.buy),
 8     path(r'base/', views.base),
 9     path(r'shoppingcar/', views.shoppingcar),
10     path(r'mod/', views.mod),
11     path(r'collection/', views.mod),
12 
13 ]
相關文章
相關標籤/搜索