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
除去标签: {{ 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”)