2018-9-11 12:45:38

还是这个连接 : http://www.cnblogs.com/liwenzhou/p/7931828.html

注意:

这节讲的是  母版语言的灵活用法!  可以更好地使用模板语言 进阶的

  1. day67 2018-05-09
  2.  
  3. 1. 内容回顾
  4. 1. 模板语言(字符串替换)
  5. 1. 母版和继承
  6. 1. 什么时候用母版?
  7. html页面有重复的代码,把它们提取出来放到一个单独的html文件。
  8. (比如:导航条和左侧菜单)
  9. 2. 子页面如何使用母版?
  10. {% extends 'base.html' %} --> 必须要放在子页面的第一行
  11.  
  12. 母版里面定义block(块),子页面使用block(块)去替换母版中同名的块
  13. 2. 组件
  14. 1. 什么时候用组件?
  15. 重复的代码,包装成一个独立的小html文件。
  16. 2. 如何使用?
  17. {% include 'nav.html' %}
  18.  
  19. 3. Django模板语言中关于静态文件路径的灵活写法
  20. 1. 利用Django模板语言内置的static方法帮我拼接静态文件的路径
  21. {% load static %}
  22. <link href="{% static 'bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
  23. 2. 利用内置的get_static_prefix获取静态文件路径的别名,我们自行拼接路径
  24. {% load static %}
  25. <link href="{% get_static_prefix %}bootstrap/css/bootstrap.min.css" rel=stylesheet>
  26. 3. as语法(一个路径多次用到,可以使用as保存到一个变量,后面就直接使用变量代替具体路径)
  27. 4. 自定义的simple_tag
  28. filter高级一点点
  29. 它可以接受的参数个数大于2
  30.  
  31. 5. 自定义的inclusion_tag
  32. 用来返回一段html代码(示例:返回ul标签)
  33.  
  34. 1. 定义阶段
  35. app下面新建templatetags 文件夹(注意是Python包)
  36. 新建一个py文件
  37.  
  38. from django import template
  39. # 生成注册示例,名字必须是register
  40. register = template.Library()
  41. @register.inclusion_tag("ul.html")
  42. def show_ul(num):
  43. num = 1 if num < 1 else int(num)
  44. data = ["第{:0>3}号技师".format(i) for i in range(1, num+1)]
  45. return {"data": data}
  46.  
  47. 2. 调用阶段
  48. {% load xx %}
  49. {% show_ul 10 %}
  50.  
  51. 2. 今日内容
  52. 1. 视图(接收请求返回响应那部分)
  53. 1. CBV(class base view)和FBV(function base view)
  54.  
  55. 2. request对象
  56. 1. 之前学过的
  57. 1. request.method --> 获取请求的方法(GETPOST等)
  58. 2. request.GET --> 通常用来获取URL里面的参数
  59. 127.0.0.1:8000/edit_book/?id=1&name=yimi
  60. request.GET --> {"id":1, "name":"yimi"}
  61. request.GET.get("id")
  62. 3. request.POST --> 用来获取POST提交过来的数据
  63. request.POST.get("book_name")
  64. 2. 补充其他常用的:
  65. 1. request.path_info --> 获取用户请求的路径(不包含IP和端口和URL参数)
  66. 2. request.body
  67.  
  68. 3. response
  69. 基础必备三件套(求学要严谨)
  70. 1. HttpResponse --> 返回字符串内容
  71. 2. render --> 返回一个html页面
  72. 3. redirect --> 返回一个重定向(告诉浏览器再去访问另外的网址)
  73.  
  74. 4. JsonResponse
  75.  
  76. 2. 路由系统(urls.py http://www.cnblogs.com/liwenzhou/p/8271147.html
  77. 1. 正则表达式的模糊匹配
  78. 2. 分组匹配 --> 相当于给视图函数传递位置参数
  79. 3. 分组命名匹配 --> 相当于给视图函数传递关键字参数
  80. (两个不要混合使用)
  81.  
  82. ---------------------------- 这里是坎 ------------------------------------
  83.  
  84. 4. 反向解析URL
  85. 本质上就是给url匹配模式起别名,然后用过别名拿到具体的URL路径
  86.  
  87. 1. 怎么起别名?
  88. url匹配模式中,定义name="别名"
  89. 2. 如何使用?
  90. 1. 在模板语言里面使用:
  91. {% url "别名" %} --> 得到具体的URL路径
  92. 2. 在视图中如何使用:
  93. from django.urls import reverse
  94.  
  95. reverse("别名") --> 得到具体的URL路径
  96. 3. 如何传参数?
  97. 1. 模板语言中:
  98. {% url "别名" 2018 "nb" %}
  99. 2. 视图函数中
  100. 传位置参数:
  101. reverse("别名", args=(2018, "nb"))
  102.  
  103. 传关键字参数:
  104. reverse("别名" kwargs={"year": 2018, "title": "nb"})
  105. 4. namespace
  106. 为了防止不同的app下面的url匹配模式有重复的别名
  107.  
  108. 3. 今日作业
  109.  
  110. 1. 把之前图书管理系统的编辑和删除功能用url分组匹配的形式修改一下!
  111.  
  112. 2. 把编辑按钮的链接改成反向解析URL的形式
  1. {% include 'navbar.html' %} 可以在母版里面写,本身就是替换html,但是在替换的html中,
    必须写在 如下 块里面!只有这样,在母版中才有位置放 网页html
  1. {% block page-main %}
  1. {% include 'navbar.html' %}
  1. {% endblock %}

  1.  

  1.  

9.11 Django关于母版语言的灵活用法的更多相关文章

  1. django 中模板语言的各种用法

    模板 1.视图中使用模板 模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户 1.普通方法:HTML被直接硬编码在 P ...

  2. Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag

    Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...

  3. Django的模板语言

      Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. ...

  4. django 更新 模板语言

    Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 在Django的模板语言中按此语法使用:{{ 变量名 ...

  5. 第四篇Django之模板语言

    Django之模板语言 一 模板的执行 模板的创建过程,对于模板,其实就是读取模板(其中嵌套着模板的标签),然后将Model中获取的数据插入到模板中,最后将信息返回给用户 def current_da ...

  6. django 更改默认语言和时间

    django的默认语言为英语,默认时间为UTC. 在settings.py中更改语言和时间 LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' 改为 LANGUAGE_ ...

  7. Django之模板语言(一)

    1.Django的模板语言(简而言之,字符串替换) 1.目前为止已经学过的模板语言: 1.{{ name }}  ------>变量 2. for 循环: {% for i in book_li ...

  8. django支持多语言

    Django支持多语言切换 下面介绍下如何使网站或APP国际化,让其支持多种语言 . 官网 效果 1.创建locale文件夹 先在项目根目录下创建一个名为locale的文件夹,这个文件夹是用来存放dj ...

  9. Delphi的DateToStr StrToDate格式灵活用法

    Delphi的DateToStr StrToDate格式灵活用法 2008-04-09 10:19 procedure TForm1.Button1Click(Sender: TObject);var ...

随机推荐

  1. BarTender个别条码的前缀知识讲解

    BarTender条码前缀可以强制其根据您选择的行业标准(如 GS1 或 AIM)向条形码的开头添加一个或多个字符.支持的符号体系仅包括2D-Pharmacode.Data Matri.GS1 Dat ...

  2. 【搞笑签名】390个qq个性昵称或签名,周末前娱乐一下

    1 来瓶82年的矿泉水 2 名不正则言承旭 3 天涯何处无芳草,还是母乳喂养好 4 她的妈妈不爱我 5 你丫的 6 农夫三拳 7 猪嚼在恋√痛 8 马驴脸猛鹿 9 小白兔兽性大发 10 曰捣一乱 11 ...

  3. vim在系统剪切板的复制与粘贴

    https://blog.csdn.net/zhangxiao93/article/details/53677764

  4. 史上最强大的python selenium webdriver的包装

    1.之前已经发过两次使用单浏览器了,但是这个最完美,此篇并没有使用任何单例模式的设计模式,用了实例属性结果缓存到类属性. 2.最简单的控制单浏览器是只实例化一次类,然后一直使用这个对象,但每个地方运行 ...

  5. 7 -- Spring的基本用法 -- 6... Spring 3.0 提供的Java配置管理

    7.6 Spring 3.0 提供的Java配置管理 Spring 允许使用Java类进行配置管理,可以不使用XML来管理Bean,以及Bean之间的依赖关系. Interface :Person p ...

  6. MyBatis入门程序之Mapper代理方式

    Mapper代理的开发方式,程序员只需要编写mapper接口(相当于dao接口)即可,MyBatis会自动为mapper接口生成动态代理实现类. 一.开发规范 1.mapper接口的全限定名要和map ...

  7. Python查找文件

    1. 利用字符串的前缀和后缀匹配查找文件 str.startswith() star.endswith() 2.使用fnmatch fnmatch              判断文件名是否符合特定模式 ...

  8. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing ___Error Installing APK

    一 : 根据以下路径,找到Instant Run中的选项         File —— Settings——Build,Execution,Deployment——Instant Run       ...

  9. 来数一数XML解析成为Dataset数据

    最近在看一些接口,所以目标就是写接口啦,但是我想说的是公司的业务还不曾了解,所以自己先来做一个小小的demo练习吧,主要知道需要和xml有关系的,但是之前从来没有接触过解析xml文件的,在玩撒谎能够搜 ...

  10. WebService连接postgresql( 失败尝试)

     一.先进行postgresql的配置 1. 安装ODBC驱动 下载地址:http://www.postgresql.org/ftp/odbc/versions/msi/ 2. 打开 控制面板 -&g ...