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& ...
随机推荐
- 【Luogu】P2774方格取数问题(最大点权独立集)
题目链接 不知道为啥坠大点权独立集的做法跟最大权闭合图差不多? qwq 放个链接 #include<cstdio> #include<cstring> #include< ...
- 从输入url到页面呈现的过程
从输入url到页面呈现的过程包括两个基本过程:网络通信和页面渲染 网络通信主要过程是 域名解析 -> TCP连接 -> HTTP请求 -> 服务端响应,返回HTML 页面渲染的主要过 ...
- iOS-跨界面传值和跨应用传值
跨界面传值 从一个界面将一个结果值传到另一个界面,这个是我们在开发过程中非常常见的一个问题.传值本身并不是一个太复杂的问题,在此主要简述一下常用的传值方法. 我们传值常用的方法主要有四种: 1.属性传 ...
- bzoj 4295 [PA2015]Hazard 贪心,暴力
[PA2015]Hazard Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 69 Solved: 19[Submit][Status][Discus ...
- 网络流24题-最长k可重线段集问题
最长k可重线段集问题 时空限制1000ms / 128MB 题目描述 给定平面 x−O−y 上 n 个开线段组成的集合 I,和一个正整数 k .试设计一个算法,从开线段集合 I 中选取出开线段集合 S ...
- CF 451E Devu and Flowers
可重集的排列数 + 容斥原理 对于 \(\{A_1 * C_1, A _2 * C_2, \cdots, A_n * C_n\}\)这样的集合来说, 设 \(N = \sum_{i = 1} ^ n ...
- java面试复习
1.jvm虚拟机 https://www.cnblogs.com/dingyingsi/p/3760447.html https://blog.csdn.net/qq_41701956/article ...
- JSTL <C:if></C:if> 和<C:ForEach></C:ForEach> 入门级~
一.<C:If>标签:条件判断语句 <c:if test="${objList.nodetype == 1}">上级节点</c:if> te ...
- 阿里云oss教程
OSS是提供非结构化数据存取的服务.对于刚开始使用OSS的用户,非结构数据可以理解为word文档.PDF.PPT.EXCEL表格.MP3.MKV.RMVB.HTML等各种类型文件.OSS提供API去进 ...
- 2017CCPC 哈尔滨 B
这题没有考虑到m这个东西,所以就没有往二分答案的方向想 二分答案 check的时候,我们找的是大于等于x的数有多少个被加入到那个数组中.如果 >= m说明这个数可能是答案,否则就不是. 用尺取来 ...