9.11 Django关于母版语言的灵活用法
2018-9-11 12:45:38
还是这个连接 : http://www.cnblogs.com/liwenzhou/p/7931828.html
注意:
这节讲的是 母版语言的灵活用法! 可以更好地使用模板语言 进阶的
- day67 2018-05-09
- 1. 内容回顾
- 1. 模板语言(字符串替换)
- 1. 母版和继承
- 1. 什么时候用母版?
- html页面有重复的代码,把它们提取出来放到一个单独的html文件。
- (比如:导航条和左侧菜单)
- 2. 子页面如何使用母版?
- {% extends 'base.html' %} --> 必须要放在子页面的第一行
- 母版里面定义block(块),子页面使用block(块)去替换母版中同名的块
- 2. 组件
- 1. 什么时候用组件?
- 重复的代码,包装成一个独立的小html文件。
- 2. 如何使用?
- {% include 'nav.html' %}
- 3. Django模板语言中关于静态文件路径的灵活写法
- 1. 利用Django模板语言内置的static方法帮我拼接静态文件的路径
- {% load static %}
- <link href="{% static 'bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
- 2. 利用内置的get_static_prefix获取静态文件路径的别名,我们自行拼接路径
- {% load static %}
- <link href="{% get_static_prefix %}bootstrap/css/bootstrap.min.css" rel=stylesheet>
- 3. as语法(一个路径多次用到,可以使用as保存到一个变量,后面就直接使用变量代替具体路径)
- 4. 自定义的simple_tag
- 比filter高级一点点
- 它可以接受的参数个数大于2
- 5. 自定义的inclusion_tag
- 用来返回一段html代码(示例:返回ul标签)
- 1. 定义阶段
- 在app下面新建templatetags 文件夹(注意是Python包)
- 新建一个py文件
- from django import template
- # 生成注册示例,名字必须是register
- register = template.Library()
- @register.inclusion_tag("ul.html")
- def show_ul(num):
- num = 1 if num < 1 else int(num)
- data = ["第{:0>3}号技师".format(i) for i in range(1, num+1)]
- return {"data": data}
- 2. 调用阶段
- {% load xx %}
- {% show_ul 10 %}
- 2. 今日内容
- 1. 视图(接收请求返回响应那部分)
- 1. CBV(class base view)和FBV(function base view)
- 2. request对象
- 1. 之前学过的
- 1. request.method --> 获取请求的方法(GET、POST等)
- 2. request.GET --> 通常用来获取URL里面的参数
- 127.0.0.1:8000/edit_book/?id=1&name=yimi
- request.GET --> {"id":1, "name":"yimi"}
- request.GET.get("id")
- 3. request.POST --> 用来获取POST提交过来的数据
- request.POST.get("book_name")
- 2. 补充其他常用的:
- 1. request.path_info --> 获取用户请求的路径(不包含IP和端口和URL参数)
- 2. request.body
- 3. response
- 基础必备三件套(求学要严谨)
- 1. HttpResponse --> 返回字符串内容
- 2. render --> 返回一个html页面
- 3. redirect --> 返回一个重定向(告诉浏览器再去访问另外的网址)
- 4. JsonResponse
- 2. 路由系统(urls.py) http://www.cnblogs.com/liwenzhou/p/8271147.html
- 1. 正则表达式的模糊匹配
- 2. 分组匹配 --> 相当于给视图函数传递位置参数
- 3. 分组命名匹配 --> 相当于给视图函数传递关键字参数
- (两个不要混合使用)
- ---------------------------- 这里是坎 ------------------------------------
- 4. 反向解析URL
- 本质上就是给url匹配模式起别名,然后用过别名拿到具体的URL路径
- 1. 怎么起别名?
- 在url匹配模式中,定义name="别名"
- 2. 如何使用?
- 1. 在模板语言里面使用:
- {% url "别名" %} --> 得到具体的URL路径
- 2. 在视图中如何使用:
- from django.urls import reverse
- reverse("别名") --> 得到具体的URL路径
- 3. 如何传参数?
- 1. 模板语言中:
- {% url "别名" 2018 "nb" %}
- 2. 视图函数中
- 传位置参数:
- reverse("别名", args=(2018, "nb"))
- 传关键字参数:
- reverse("别名" kwargs={"year": 2018, "title": "nb"})
- 4. namespace
- 为了防止不同的app下面的url匹配模式有重复的别名
- 3. 今日作业
- 1. 把之前图书管理系统的编辑和删除功能用url分组匹配的形式修改一下!
- 2. 把编辑按钮的链接改成反向解析URL的形式
- {% include 'navbar.html' %} 可以在母版里面写,本身就是替换html,但是在替换的html中,
必须写在 如下 块里面!只有这样,在母版中才有位置放 网页html
- {% block page-main %}
- {% include 'navbar.html' %}
- {% endblock %}
9.11 Django关于母版语言的灵活用法的更多相关文章
- django 中模板语言的各种用法
模板 1.视图中使用模板 模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户 1.普通方法:HTML被直接硬编码在 P ...
- Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag
Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...
- Django的模板语言
Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. ...
- django 更新 模板语言
Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 在Django的模板语言中按此语法使用:{{ 变量名 ...
- 第四篇Django之模板语言
Django之模板语言 一 模板的执行 模板的创建过程,对于模板,其实就是读取模板(其中嵌套着模板的标签),然后将Model中获取的数据插入到模板中,最后将信息返回给用户 def current_da ...
- django 更改默认语言和时间
django的默认语言为英语,默认时间为UTC. 在settings.py中更改语言和时间 LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' 改为 LANGUAGE_ ...
- Django之模板语言(一)
1.Django的模板语言(简而言之,字符串替换) 1.目前为止已经学过的模板语言: 1.{{ name }} ------>变量 2. for 循环: {% for i in book_li ...
- django支持多语言
Django支持多语言切换 下面介绍下如何使网站或APP国际化,让其支持多种语言 . 官网 效果 1.创建locale文件夹 先在项目根目录下创建一个名为locale的文件夹,这个文件夹是用来存放dj ...
- Delphi的DateToStr StrToDate格式灵活用法
Delphi的DateToStr StrToDate格式灵活用法 2008-04-09 10:19 procedure TForm1.Button1Click(Sender: TObject);var ...
随机推荐
- BarTender个别条码的前缀知识讲解
BarTender条码前缀可以强制其根据您选择的行业标准(如 GS1 或 AIM)向条形码的开头添加一个或多个字符.支持的符号体系仅包括2D-Pharmacode.Data Matri.GS1 Dat ...
- 【搞笑签名】390个qq个性昵称或签名,周末前娱乐一下
1 来瓶82年的矿泉水 2 名不正则言承旭 3 天涯何处无芳草,还是母乳喂养好 4 她的妈妈不爱我 5 你丫的 6 农夫三拳 7 猪嚼在恋√痛 8 马驴脸猛鹿 9 小白兔兽性大发 10 曰捣一乱 11 ...
- vim在系统剪切板的复制与粘贴
https://blog.csdn.net/zhangxiao93/article/details/53677764
- 史上最强大的python selenium webdriver的包装
1.之前已经发过两次使用单浏览器了,但是这个最完美,此篇并没有使用任何单例模式的设计模式,用了实例属性结果缓存到类属性. 2.最简单的控制单浏览器是只实例化一次类,然后一直使用这个对象,但每个地方运行 ...
- 7 -- Spring的基本用法 -- 6... Spring 3.0 提供的Java配置管理
7.6 Spring 3.0 提供的Java配置管理 Spring 允许使用Java类进行配置管理,可以不使用XML来管理Bean,以及Bean之间的依赖关系. Interface :Person p ...
- MyBatis入门程序之Mapper代理方式
Mapper代理的开发方式,程序员只需要编写mapper接口(相当于dao接口)即可,MyBatis会自动为mapper接口生成动态代理实现类. 一.开发规范 1.mapper接口的全限定名要和map ...
- Python查找文件
1. 利用字符串的前缀和后缀匹配查找文件 str.startswith() star.endswith() 2.使用fnmatch fnmatch 判断文件名是否符合特定模式 ...
- 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 ...
- 来数一数XML解析成为Dataset数据
最近在看一些接口,所以目标就是写接口啦,但是我想说的是公司的业务还不曾了解,所以自己先来做一个小小的demo练习吧,主要知道需要和xml有关系的,但是之前从来没有接触过解析xml文件的,在玩撒谎能够搜 ...
- WebService连接postgresql( 失败尝试)
一.先进行postgresql的配置 1. 安装ODBC驱动 下载地址:http://www.postgresql.org/ftp/odbc/versions/msi/ 2. 打开 控制面板 -&g ...