对应github地址:https://github.com/pshyms/django/tree/master/mxonline/7_day
 
 
一. 定制不同页面中样式相同,内容不同的模板标签,
 
1. 拷贝org-list.html到templates目录中,新建base.html后把org-list.html中的内容拷贝到base.html
 
2. 定制base.html
2.1 加载静态文件位置变量
 
2.2 在<title>中添加标题模块,默认是"慕学在线网"
block模板标签可以继承原网页样式,同时动态改变不同网页中的变量内容,用法就是用block模板标签包着原网页内容
 
2.3 在通用css,js后添加用户自定义类型,让用户在继承通用样式的基础上还可以添加其他样式
 
2.4 分别在导航和机构内容的section块前后加
{% block custom_bread %} .... {% endblock %}
{% block content %} ... {% endblock %}
 
其中导航块就是页面中显示如下内容的代码,俗称面包屑
 
 
3. 使用定制模板
 
首先清空org-list.html后,然后添加如下
3.1 继承base.html中的所有内容
 
3.2 修改标题为"我的慕学在线网"
 
3.3 重写面包屑代码,改为"我的课程机构"
 
3.4 重写机构内容部分的section
1)把base.html中的{% block content %}以及中间的html代码都拷贝到org-list.html中
2)把base.html中{% block content %}中的section代码块删除
3)在org-list.html中添加{% load staticfiles %},因为section代码块中用到了{% static %}模板标签
 
 
4. 编写view和URL
4.1 在organizaiton/views.py中添加
 
4.2 在mxonline/urls.py中添加如下内容,首先当导入OrgView
后期可以在organizaiton中新建urls.py,优化一下URL结构
 
然后访问http://127.0.0.1:8000/org_list,即可成功访问网页内容
 
 
 
 
二. 课程机构列表页数据展示
 
1. 配置图片上传路径
新建mxonline/static目录
在settings.py中添加
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
 
2. organization/models.py中的CourseOrg中增加机构类别字段
 
迁移数据库: makemigrations/migrate
 
 
3. 将网页中的静态显示的城市,机构信息改写成动态从数据库获取数据
 
3.1 完善organization/views.py
 
 
3.2 改写城市名
在网页42行左右表示城市的代码处添加,其中<a>标签中的内容就是复制原先的代码,改了城市名部分
然后删除原先表示城市的所有代码行
 
 
 
3.3 改写课程机构封面图
每一个课程机构都是一个<dl>标签,在大概60行处第一个<dl>标签加一个for循环的模板标签,把任意一个<dl>标签内容拷贝到其中,其他的<dl>标签都可删掉了
 
在数据库中封面图的存储方式为org/2018/8/xx.jpg,它是一个字符串的相对路径。models.py中定义上传图片类型为ImageField,怎么把一个imageField类型转为一个URL地址呢?
原先表示封面图的html代码如下
只需修改data-url即可
 
要想使上面的一行代码成功,需要做如下设置
1)想用{{ MEDIA_URL }},需要在settings.py->TEMPLATES->OPTIONS->context_processors字段中添加media上下文处理器
 
2)mxonline/urls.py中添加类似如下代码,只要模块导入以及最后一行
 
 
3.4  改写课程机构数量
因为在views.py中已经定义org_nums并传到了org-list.html中,所以只需在网页代码中使用变量标签就好,修改第50行如下,把具体数字15改成{{ org_nums }}
 
3.5 修改课程机构名字,地址等。只需在相应位置用变量标签替换就好,比如机构名可替换为
{{ course_org.name }}
 
 
 
 

mxonline实战7,模板继承和模板标签的更多相关文章

  1. Django 模板 语法 变量 过滤器 模板继承 组件 自定义标签和过滤器 静态文件相关

    本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法   模板渲染的官方文档 关于模板渲染你只需要记两种特殊符号(语法 ...

  2. Django(4)html模板继承、模板导入、分页实现

    1.获取所有请求信息 导入模块:from django.core.handlers.wsgi import WSGIRequest request.environ:包含所有的请求信息,可以打印看一下, ...

  3. thinkphp5, 模板继承、模板布局

    ---------------------------------------------------------------------------------------------------- ...

  4. Django 04 模板标签(if、for、url、with、autoeacape、模板继承于引用、静态文件加载)

    Django 04 模板标签(if.for.url.with.autoeacape.模板继承于引用.静态文件加载) 一.if.for.url.with.autoescape urlpatterns = ...

  5. Django框架基础知识04-模板标签与模板继承

    1.常用的模板标签 -作用是什么? -常用标签 总结:语法 {% tag %} {% endtag %} {% tag 参数 参数 %} 2.模板的继承与引用 -引用 include标签 -继承 ex ...

  6. Django(十五)模板详解:模板标签、过滤器、模板注释、模板继承、html转义

    一.模板的基础配置及使用 [参考]https://docs.djangoproject.com/zh-hans/3.0/topics/templates/ 作为Web框架,Django提供了模板,用于 ...

  7. Python自动化之模板继承和cookie

    request请求头信息 type(request) //查看类 from django.core.handlers.wsgi import WSGIRequest 结果会以字典的形式存在 reque ...

  8. flask模板结构组织(局部模板、宏、模板继承)

    模板结构组织 除了使用函数.过滤器等工具控制模板的输出外,jinja2还提供了一些工具来在宏观上组织模板内容. 局部模板 在Web程序中,我们通常会为每一类页面编写一个独立的模板.比如主页模板.用户资 ...

  9. Django 使用模板页面,块标签,模型

    1.Django 使用模板页面 Django对于成体系的页面提出了模板继承和模板加载的方式. 1.导入静态页面 2.导入静态文件(css,js,images) 3.修改页面当中的静态地址 1.sett ...

随机推荐

  1. Wrapper模式(Decorator模式)

    [Wrapper模式(Decorator模式)] 装饰者模式 Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案. 意图: 动态地 ...

  2. vnc安装

    安装命令:yum install tigervnc-server 一.启动VNC服务 输入命令 vncserver ps -ef|grep Xvnc vncserver -geometry 800x6 ...

  3. CVE-2017-7494:Linux Samba named pipe漏洞

    描述: 漏洞是由于代码中一个管道申请命令的判断导致的,可以通过构造特定请求执行上传的so文件. 漏洞影响了Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本. 测试: ...

  4. 如何快速简单粗暴地理解Python中的if __name__ == '__main__'

    1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...

  5. 二叉树中和为某一值的路径 (java)

    问题描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 题解 import java.util.Arra ...

  6. BI实施的四个层次

    满足业务需求 注重数据分析汇总 统一.高效的系统集成越来越麻烦.管理人员穿梭在具有不同风格.使用逻辑的系统间,越来越厌倦,众多系统之间的业务逻辑.数据含义不一致,使用户无法判 断数据的准确性.任何一个 ...

  7. deploy: [mkdir] Created dir: C:\Program Files\Java\apache-cxf-2.4.2\samples\java_first_pojo\build [loadfile] Do not set property srcbuild.classpath as its length is 0.

    使用CXF的错误,错误是说我的路径有错误,因为路径错误所以无法运行程序 (1)原因,我将其放入了Program Files文件夹下,所以,其不好使 分析原因: 目录路径错误,目录中不能有空格,否则其解 ...

  8. linux源码安装php7.2.0

    1. 源码包下载地址 2. 解压php压缩包 tar –zxvf php-7.2.0.tar.gz 3. 进入解压后的 cd php7.2.0 4.安装php需要的扩展 yum install lib ...

  9. Ian Goodfellow——对抗神经网络之父

    争议.流派,有关GAN的一切:Ian Goodfellow Q&A:https://baijiahao.baidu.com/s?id=1595081179447191755&wfr=s ...

  10. 深水划水队项目---七天冲刺之day5

    站立式会议: 因为今天有成员回家,不能进行线下站立式会议,只能线上进行语音聊天 工作进度:  昨天完成的任务: 游戏功能的基本实现 商讨出如何实现游戏中的难度选择功能与道具功能 商讨出站立式会议能线下 ...