zoukankan      html  css  js  c++  java
  • 模板继承

    
    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块预留的空间中添加的内容
    
    
  • 相关阅读:
    反爬虫破解系列-汽车之家利用css样式替换文字破解方法
    保留注释换行的python模块configparser
    python logging 实现的进程安全的文件回滚日志类
    我要自学网视频免登陆观看破解技巧
    修改mac host文件绑定域名
    Position属性四个值:static、fixed、absolute和relative的区别和用法
    vue项目通过webpack打包生成的dist文件放到express环境里运行(vue+webpack+express)
    npm ERR! mathine_call@1.0.0 dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js` npm ERR! Exit status 1
    Do not use built-in or reserved HTML elements as component id: header
    vue 项目 使用sass
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348714.html
Copyright © 2011-2022 走看看