Django 自定义过滤器

Django 自定义过滤器

 

在项目目录中建立templatetags目录

 

 

建立my_filter.py 文件

 

#导入模板模块

from django import template

 

#注册过滤器对象

register = template.Library()

 

#自定义过滤器

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

@register.filter

def my_str(val):

    return '$' + str(val)

 

 

#定义一个双参数的过滤器

@register.filter

def my_str_two(val,p1):

    return val + p1

 

 

#定义一个多参数的过滤器

#注册过滤器的时候,需要注册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

 

 

在模板中先调用过滤器文件

 

{# 导入过滤器文件 #}

{% load my_filter %}

 

{{ test_str | my_str }}

 

    {# 两个参数,进行调用 #}

    {{ '你好' | my_str_two:'不好' }}

 

    {# 调用多参数的过滤器 #}

    {% my_str_many '你好' '不好' '' %}

 

 

 

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”)

posted @ 2019-05-09 08:05  BOSS爱龟  阅读(1281)  评论(0编辑  收藏  举报