对应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. 信息传递(tarjan)

    信息传递 http://uoj.ac/problem/146 有 n 个同学(编号为 1 到n )正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 i的同学的信息传递对象 ...

  2. EL表达式获取值栈数据

    ---------------------siwuxie095 EL 表达式获取值栈数据 1.导入 JSTL 相关包,下载链接: (1)http://tomcat.apache.org/taglibs ...

  3. 系统批量运维管理器pexpect详解

    一.pexpect介绍 pexpect可以理解成Linux下的expect的Python封装,通过pexpect我们可以实现对ssh.ftp.passwd.telnet等命令进行自动交互,而无需人工干 ...

  4. SpringMVC框架结构的图解、架构的处理流程以及三大组件的说明和使用

    1.1 框架结构 1.2 架构流程 1.用户发送请求至前端控制器DispatcherServlet: 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器: 3. ...

  5. SQLite介绍

    优点:轻量级.绿色组件.单一文件.跨平台.查询效率极高.使用事务插入速度极快.支持limit分页. 适合查询速度要求较高,内存占用较少的场合,尤其是嵌入式操作系统,如各种手机操作系统,低并发web(9 ...

  6. android studio打包apk

    转载:http://chenfeicqq.iteye.com/blog/1889160 1)Android Studio菜单Build->Generate Signed APK      (2) ...

  7. vue elementui form表单验证

    最近我们公司将前端框架由easyui 改为 vue+elementui .自学vue两周 就开始了爬坑之路.业余时间给大家分享一下心得,技术新手加上第一次分享(小激动),有什么不足的地方欢迎大家指正, ...

  8. Java Thread系列(九)Master-Worker模式

    Java Thread系列(九)Master-Worker模式 Master-Worker模式是常用的并行设计模式. 一.Master-Worker 模式核心思想 Master-Worker 系统由两 ...

  9. UI / UX设计师如何玩转用户心理学原理?

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 众所周知,心理学在APP的用户体验设计中起着非常重要的作用.通过了解我们的设计是如何被感知的,我们可 ...

  10. mvc html.PartialView()传参

    方式一,viewDatapublic static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, ...