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 ]
相关文章
相关标签/搜索