Django中的模板和分页
模板
在Templates中添加母版:
- 母版...html
母版(master.html)中可变化的地方加入:
{%block content%}{%endblock%}
在子版 (usermg.html) 中设置如下:
{% extends 'master.html' %}
{% block content%}
<h1>用户管理</h1>
{%end block%}
导入小组件的模块:
{% include 'model.html' %}
#同样会载入model.html中的模板语言
自定义模板语言函数simple_tag:
{{ name|lower}} #lower函数让name全部小写
新建templatetags文件夹,创建函数文件xxxx.py:
from django import template
from django.utils.safestring import mark_safe register = template.Library()
(1)simple_tag (不能作为if条件,参数任意)
@register.simple_tag
def func_test(a):
return a
在html中引入:
{% load xxxx %}
{% func_test a %}
(2)filter(可以作为if条件,参数只能最多两个,不能有空格)
@register.filter
def func_test1(a,b): #只能传两个参数
return a+b
在html中引入:
{% load xxxx %}
{{ "maliya"|func_test1:'sasa' }} #不能有多余的空格
{{参数1|函数名:参数2}}
应用:
filter 可以放入 if 中作为条件
{%if "maliya"|func_test1:'sasa' %}
总结:
a.创建templatetags目录
b.任意py文件
c.创建template对象 register
d.定义函数,加上装饰器
e.在settings注册当前app
f.在顶部LOAD {% load xxoo%}
g.引用 {% 函数名 参数1 参数2 %}
ps:让字符串强制转化为html语言:
{{page_str|safe}}
page_str = mark_safe(page_str)
分页(自定义的分页)
简单思路如下:
让字符串强制转化为html语言:
{{page_str|safe}}
page_str = mark_safe(page_str) 计算页数:
all_count = len(LIST)
count,y = divmod(all_count,10)
count = count+1 if y
list = []
for i in range(1,count+1):
temp = '<a class = 'page' href = 'user/?p=%s'> %s </a>'%(i,i)
list.append(temp) 当前页:current_page
总页数:total_page
每页显示10条数据:per_page_page
页码:11 如果:总页数 < 11
start_page = 1
end_page = total_page
else:
当前页 <= 6:
start_page = 1
end_page = 11 + 1
else:
start_page = 当前页 -5
end_page = 当前页 +5+1
如果 当前页 +5 > 总页数:
end_page = 总页数
start_page = 总页数 -10
utils文件夹:分页模块
Django中的模板和分页的更多相关文章
- Django中扩展Paginator实现分页
Reference:https://my.oschina.net/kelvinfang/blog/134342 Django中已经实现了很多功能,基本上只要我们需要的功能,都能够找到相应的包.要在Dj ...
- Django中ORM模板常用属性讲解
学习了ORM模板中常用的字段以及使用方法,具体如下: from django.db import models # Create your models here. # 如果要将一个普通的类映射到数据 ...
- Django中的模板渲染是什么
首先建立一个页面 在views.py中增加一个方法 配置URL 如何实现的呢 这就是渲染,传递的数据不同显示的数据也不同.Django里的渲染引擎和Jinja的虽然不同但是语法基本通用.现在明白什么叫 ...
- Django中html里的分页显示
分页一(very low) 因为数据量过大,而又想直观便捷的查看数据,进而通过分页显示就可以完成这项工作 app中views.py LIST=[] #全局定义一个LIST for i in range ...
- Django中的模板变量
示例文件: template_variable_demo.zip
- Django补充之模板语言
路由系统 Django页面详情以及分页 举个例子: 有一组后台数据,需要展示到页面上,但由于数据量较大,那就需要做分页了吧,那么怎么才能将页面详情和分页都融合进去呢,Django里的路由系统加上正则表 ...
- Python学习笔记整理总结【Django】:模板语言、分页、Cookie、Session
一.模板语言 1.在前段展示:对象/字典/元组 class Business(models.Model): # id #用默认的自增id列 即:Business中有3列数据(id, caption, ...
- python框架Django中MTV框架之Template(模板/界面)
MTV框架之Template(模板/界面) 关注公众号"轻松学编程"了解更多. 1.模板目录位置 应用下 不需要注册 无法跨应用地进行复用 工程下 需要注册 settings.py ...
- Django 中url补充以及模板继承
Django中的URL补充 默认值 在url写路由关系的时候可以传递默认参数,如下: url(r'^index/', views.index,{"name":"root& ...
随机推荐
- 《分布式对象存储》作者手把手教你写 GO 语言单元测试!
第一部分:如何写Go语言单元测试 Go语言内建了单元测试(Unit Test)框架.这是为了从语言层面规范写UT的方式. Go语言的命名规则会将以_test.go结尾的go文件视作单元测试代码. 当我 ...
- 96. Unique Binary Search Trees(I 和 II)
Given n, how many structurally unique BST's (binary search trees) that store values 1-n? For example ...
- java面试题之BIO、NIO、AIO的应用场景
定义: 1.BIO:同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时,服务器就启动一个线程来处理,如果这个连接不处理任何事情会造成不必要的线程开销,可以通过线程池机制改善. 2.NI ...
- 反射+注解:excel2module
package test.excelTest; import java.io.File; import java.io.FileInputStream; import java.lang.reflec ...
- one day php. alomost all;
<? namespace Test; use \PhpProject\PhpApp as Other; $u=new Other("ns test"); echo $u-&g ...
- Android组件实例化问题
对于Application. Activity. Notification. BroadCast. Service 这些组件的使用,对象的实例化问题各有不同,如何实例化以及在什么时候实例化也所有不同. ...
- 制作不随浏览器滚动的DIV-带关闭按钮
制作不随浏览器滚动的DIV 效果见 http://bbs.csdn.net/topics/90292438 的滚动效果. $(function(){ //获取要定位元素距离浏览器顶部的距离 var ...
- Requery,Refresh,Adoquery.Close,Open 区别
经过测试发现: Requery 相当于 Adq.Close,Open:并且比Close,Open方法有个优点就是不丢失排序,Sort Adq.Close,Open 后,原来的 Adq.Sort 会丢失 ...
- Visual Studio Code 使用教程
visual studio code以下简称vsc.vsc这个编辑器也火了一会了,最近在跟风学一波typescript,网络上很多人说vsc是最适合ts的编辑器,而且这个编辑器本身也很好用,所以学一下 ...
- Android内存泄漏总结
内存泄漏问题老生常谈,很常见也很难根治,今天我在这里总结一下内存泄漏的原因和解决方法: 所谓内存泄漏,就是本该被回收的对象,由于某些原因不能被回收,继续占用堆内存的这种状态,导致的结果也是显而易见的, ...