zoukankan      html  css  js  c++  java
  • 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文件夹:分页模块

     

  • 相关阅读:
    香港中小学校资料
    几本图形学的书
    windows下MBCS和UNICODE编码的转换
    索引测试代码
    Ext.Net一些特别问题(有些未验证)
    MSSQL优化之索引优化(转)
    [转载红鱼儿]kbmmw 开发点滴:kbmmW服务端事务控制
    Devexpress VCL Build v2012 vol 12.2.2 发布
    [转载红鱼儿]kbmmw 开发点滴:kbmMWQuery插入记录
    2013年新年礼物CrossFPC 终于出来了
  • 原文地址:https://www.cnblogs.com/crazytao/p/7786968.html
Copyright © 2011-2022 走看看