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& ...
随机推荐
- [codevs2185]最长公共上升子序列
[codevs2185]最长公共上升子序列 试题描述 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目.小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序 ...
- BZOJ4033 [HAOI2015]树上染色 【树形dp】
题目 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并 将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间 ...
- BZOJ4816 [Sdoi2017]数字表格 【莫比乌斯反演】
题目 Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生成了 ...
- [NOIP2017] 逛公园 (最短路,动态规划&记忆化搜索)
题目链接 Solution 我只会60分暴力... 正解是 DP. 状态定义: \(f[i][j]\) 代表 \(1\) 到 \(i\) 比最短路长 \(j\) 的方案数. 那么很显然最后答案也就是 ...
- bzoj1306: [CQOI2009]match循环赛(模拟爆搜)
Input第一行包含一个正整数n,队伍的个数.第二行包含n个非负整数,即每支队伍的得分.Output输出仅一行,即可能的分数表数目.保证至少存在一个可能的分数表.Sample Input 6 5 6 ...
- 【前端学习笔记】2015-09-02 附~~~~~ajax简单请求和获得响应结果
首先得创建一个请求XMLHttpRequest对象,var xmlhttp=window.XMLHttpRequest?new XMLHttpRequest() : new ActiveXObjec ...
- tyvj 2020 rainbow 的信号
期望 被精度坑惨的我 注意:能开 long long 尽量开, 先除后乘, int 转 double 的时候 先转换在做运算 本题与位运算有关,位与位之间互不影响,所以我们可以分开考虑 #includ ...
- PXC部署,配置,操作原理
参考:https://www.cnblogs.com/kevingrace/p/5685371.html?utm_source=itdadao&utm_medium=referra ...
- 三、 java运算符与流程控制
赋值运算 赋值运算符:=,+=,-=,×=,/=,%= class fuzhiyunsuan{ public static void main(String[] args){ int i1 = 10; ...
- PHP实现15位身份证号转18位
PHP实现15位身份证号转18位 参考博客: 作者:selfimpr626 来源:CSDN (根据身份证号计算年龄,15位身份证号码转18位) 原文:https://blog.csdn.net/wei ...