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

  • 相关阅读:
    感谢梦想
    感谢迷茫
    CSS动画
    ES6笔记③
    Object的增。删。查。改。遍历
    js创建对象的方式 三种
    js 控制台的错误提示
    ES6笔记② 箭头函数
    ES6笔记① var 和 let的区别
    js冒泡排序
  • 原文地址:https://www.cnblogs.com/1488boss/p/10836349.html
Copyright © 2020-2023  润新知