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