Django自定义过滤器

Django 自定义过滤器,

在项目目录中建立templatetags目录。

建立my_filter.py 文件,

导入模板模块 :from django import template,

注册过滤器对象: register = template.Library()

在django内部,通过装饰器的方式来注册自定义过滤器

@register.filter                                                                                在HTML里面调用

def my_str(val):                                                                              {#       导入过滤器文件            #}

return '$' + str(val)   强转成str或int                                             {% load    my_filter           %}

                            {{       test    |    my_str        }}

#定义一个双参数的过滤器                  {{ '你好' | l_str_two:'Bu' }}<br>

@register.filter

def my_str_two(val,p1):

return val + p1

#定义一个多参数的过滤器                        {% l_str_many '大橘' '有了' '小宝宝' %}

#注册过滤器的时候,需要注册simple_tag

@register.simple_tag

def my_str_many(val,p1,p2):

return val + p1 + p2

#定义一个取余数的过滤器

@register.filter

def get_line(val):

return int(val) % 2

{# 判断积偶行 #}
<table>
{% for item in test_list %}
{% if forloop.counter|get_line == 0 %}
  <tr class="tr2">
  {% else %}
  <tr class="tr1">
  {% endif %}
    <td>
      {{ item }}
    </td>
  </tr>
{% endfor %}
</table><br>

除去标签:  {{ test_b | safe }}

django自定义中间层

在目录建立my_middle.py文件,可以达成类似flask“钩子“的方法,完成前置和后置操作

导入中间件库:from django.utils.deprecation import MiddlewareMixin

定义中间件类:

        class MyMiddle(MiddlewareMixin):

#定义请求之前的方法

            def process_request(self,request):

                request.session['str'] = 'welcome'

                 print('在请求之前')

#定义请求之后的方法

             def process_response(self,request,response):

                  print('在请求之后')

                  del request.session['str']

                   return response

Django 的session 需要设置连接mysql数据库

修改配置文件settions.py

'default': {

'ENGINE': 'django.db.backends.mysql', #数据库引擎

'NAME': 'mydjango',                       #数据库名

'USER': 'root',                       #用户名

'PASSWORD': '123456',                   #密码

'HOST': '',                           #数据库主机,默认为localhost

'PORT': '',                           #数据库端口,MySQL默认为3306

'OPTIONS': {

'autocommit': True,

}

}

修改 __init__.py 文件

#导包

import pymysql

#初始化

pymysql.install_as_MySQLdb()

django session 的增删取

存储

request.session[‘username’] = ‘123’

删除

del request.session[‘username’]

取值

request.session.get(“username”)

最新文章

  1. coreseek+sphinx+mysql+thinkphp整合
  2. 如何删除已安装的Windows服务
  3. LintCode 78:Longest Common Prefix
  4. Android_ListView简单例子
  5. Brocade,Cisco SAN Switch命令对比
  6. js数组合并
  7. extjs4.0下的日期控件的星期显示为y的解决办法
  8. ASP.NET内置对象一
  9. VisualSvn Server介绍
  10. 爬虫学习-使用CrawlSpider
  11. JSP入门:介绍什么是JSP和Servlet(转)
  12. PS 图像特效算法— —渐变
  13. TCP连接建立系列 — 服务端接收SYN段
  14. 从头开始学Maven【仓库】
  15. 【1】JDK8 HashMap扩容优化
  16. WebBrowser2控件使用
  17. ViewPager中Fragment的重复创建、复用问题
  18. Sudoku(POJ2676/3074)
  19. jemter模拟高并发访问(亲测ok)
  20. 启动matlab时总是直接跳转到安装界面的解决方案

热门文章

  1. js 鼠标滚动 禁用 启用
  2. 【Junit_Ant】使用Eclipse自带的Junit和Ant,生成测试报告
  3. Uva LV 2995 Image Is Everything 模拟,坐标映射,视图映射 难度: 1
  4. Java冒泡排序与选择排序
  5. 3.BIND从服务器及缓存服务器配置
  6. nginx负载均衡实验
  7. java8 字符串转换 list long Integer
  8. Java基础-类和对象
  9. Problem A: 平面上的点——Point类 (I)
  10. SharePoint Framework 企业向导(四)