• 模板继承


    
    18.4.1 模板继承
    
    
    1. 父模板:
    
    我们首先创建一个名为base.html的模板,并将其存储在index.html所在的目录中。
    
    这个文件包含所有页面都有的元素,其他模板都继承base.html
    node2:/django/mysite/learning_log/learning_logs/templates/learning_logs#cat base.html
    <p> <a href="{% url 'learning_logs:index' %}">Learning Log</a>
    </p>
    {% block content %}{% endblock content %}
    
    
    在这个文件的第一部分创建一个包含项目名的段落,该段落也是一个到主页的连接。
    
    为创建链接,我们使用了一个模板标签,它是用大括号和百分号({% %})表示的
    
    
    模板标签是一小段代码,生产要在网页中显示的信息。
    
    在这个实例中,模板标签{% url 'learning_logs:index' %}生成一个URL,
    
    该URL与learning_logs/urls.py 中定义的名为index的URL模式匹配
    
    在这个示例中,learning_logs是一个命名空间,而index是该命名空间中一个名称独特的URL模式
    
    
    node2:/django/mysite/learning_log/learning_log#cat urls.py
    """learning_log URL Configuration
    
    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/1.11/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
    Class-based views
        1. Add an import:  from other_app.views import Home
        2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
    Including another URLconf
        1. Import the include() function: from django.conf.urls import url, include
        2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
    """
    from django.conf.urls import include,url
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^log/',include('learning_logs.urls',namespace='learning_logs')),
    ]
    
    
    node2:/django/mysite/learning_log/learning_logs#cat urls.py
    from django.conf.urls import url
    from . import views
    urlpatterns = [
       
       url(r'^$',views.index,name='index'),
    ]
    
    
    2.子模板
    
    现在需要重新编写index.html,使其继承base.html,如下所示:
    
    
    
    node2:/django/mysite/learning_log/learning_logs/templates/learning_logs#cat index.html 
    {% extends "learning_logs/base.html" %}
    {% block content %}
    <p>LEARNING Log helps you keep track of your learning,for any topic you're learning about.</p>
    {% endblock content %}
    
    
    如果将这些代码与原来的index.html进行比较,
    
    子模板的第一行必须包含标签{% extends  %},让Django知道它继承了哪个父模板。
    
    文件base.html位于文件夹learning_logs中,因此父模板路径中包含learning_logs  
    
    
    这行代码导入模板base.html的所有内容,让index.html 能够指定要在content块预留的空间中添加的内容
    
    
  • 相关阅读:
    我的游戏学习日志54———类型游戏策划(1)—动作游戏(1)
    我的游戏学习日志53——游戏游戏策划—小结
    IE8下Extjs报缺少':'符号错误
    Extjs 兼容IE8常见问题及解决方法
    程序员如何提升自己
    extjs layout 最灵活的页面布局样式
    如何运用军事战略建立更好的习惯
    Ext之页面多次请求问题 (下拉框发送无关请求)
    计算机网络通信那些事
    Java基础
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348714.html
Copyright © 2020-2023  润新知