Django-Templates模板语法(五)

模版的继承

你们有没有见过一些网站,这些网站页面整体都大差不差 只是某一些局部在做变化	
# 模版的继承 你自己先选好一个你要想继承的模版页面
	{% extends 'home.html' %}

# 继承了之后子页面跟模版页面长的是一模一样的 你需要在模版页面上提前划定可以被修改的区域
	{% block content %}
		模版内容
	{% endblock %}

# 子页面就可以声明想要修改哪块划定了的区域
	{% block content %}
		子页面内容	
	{% endblock %}


# 一般情况下模版页面上应该至少有三块可以被修改的区域
    1.css区域
    2.html区域
    3.js区域
    {% block css %}
    {% endblock %}
  
    {% block content %}
    {% endblock %}
  
    {% block js %}
    {% endblock %}
  # 每一个子页面就都可以有自己独有的css代码 html代码 js代码
  
"""
一般情况下 模版的页面上划定的区域越多 那么该模版的扩展性就越高,但是如果太多 那还不如自己直接写
"""

模版的导入

"""
将页面的某一个局部当成模块的形式,哪个地方需要就可以直接导入使用即可
"""
{% include 'wasai.html' %}

settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'statics')
]

urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 模板的继承
    url(r'^home/',views.home),
    url(r'^login/',views.login),
    url(r'^register/',views.reg),
]

views.py

from django.shortcuts import render, HttpResponse
def home(request):
	return render(request, 'home.html')

def login(request):
	return render(request, 'login.html')

def reg(request):
	return render(request,'reg.html')

home.html

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
    {% block css %}

    {% endblock %}
</head>

<body>
<nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <form class="navbar-form navbar-left">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
      </form>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>
<div class="container-fluid">
    <div class="row">
        <div class="col-md-3">
            <div class="list-group">
              <a href="/home/" class="list-group-item active">首页</a>
              <a href="/login/" class="list-group-item">登录</a>
              <a href="/register/" class="list-group-item">注册</a>
            </div>
        </div>
        <div class="col-md-9">
            <div class="panel panel-primary">
              <div class="panel-heading">
                <h3 class="panel-title">Panel title</h3>
              </div>
              <div class="panel-body">
                  {% block content %}
                      <div class="jumbotron">
                          <h1>Hello, world!</h1>
                          <p>...</p>
                          <p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
                      </div>
                  {% endblock %}
              </div>
            </div>
        </div>
    </div>
</div>
{% block js %}

{% endblock %}
</body>
</html>

reg.html

{% extends 'home.html' %}

{% block css %}
    <style>
        h1{
            color:green;
        }
    </style>
{% endblock %}

{% block content %}
    <h1 class="text-center">注册页面</h1>
    <form action="">
        <p>username:<input type="text" class="form-control"></p>
        <p>password:<input type="text" class="form-control"></p>
        <input type="submit" class="btn btn-danger">
    </form>

    <p>模板的导入</p>
    {% include 'wasai.html' %}
{% endblock %}

{% block js %}
    <script>
        alert('注册页面')
    </script>
{% endblock %}

login.html

{% extends 'home.html' %}

{% block css %}
    <style>
        h1{
            color:red;
        }
    </style>
{% endblock %}

{% block content %}
    <h1 class="text-center">登录页面</h1>
    <form action="">
        <p>username:<input type="text" class="form-control"></p>
        <p>password:<input type="text" class="form-control"></p>
        <input type="submit" class="btn btn-success">
    </form>

    <p>模板的导入</p>
    {% include 'wasai.html' %}
{% endblock %}

{% block js %}
    <script>
        alert('登录页面')
    </script>
{% endblock %}

wasai.html

<h1>这是一个非常哇塞的form表单</h1>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值