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”)
djang 过滤器和装饰器的更多相关文章
- Flask 页面缓存逻辑,jinja2 过滤器,测试器
回调接入点-页面缓存逻辑 from flask import Flask,request,render_template from werkzeug.contrib.cache import Simp ...
- django基础 -- 4. 模板语言 过滤器 模板继承 FBV 和CBV 装饰器 组件
一.语法 两种特殊符号(语法): {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二.变量 1. 可直接用 {{ 变量名 }} (可调用字符串, 数字 ,列表,字典,对象等) ...
- 插件和过滤器装饰器开发中的感悟-python-django
写这篇随笔是因为今天自己在写插件和过滤方法的过程中碰壁了,折腾了好久终于稍微发现些问题,在此记下,以作备忘. 在看了xadmin的插件机制后,笔者也想使用该思想来扩展kadmin中视图的方法. 例如, ...
- 使用装饰器模式动态设置Drawable的ColorFilter
使用装饰器模式动态设置Drawable的ColorFilter 欢迎各位关注我的新浪微博:微博 转载请标明出处(kifile的博客) 非常多时候我们都希望Android控件点击的时候,有按下效果,选中 ...
- flask模板的基本用法(定界符、模板语法、渲染模板),模板辅助工具(上下文、全局对象、过滤器、测试器、模板环境对象)
flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTM ...
- python函数、装饰器、迭代器、生成器
目录: 函数补充进阶 函数对象 函数的嵌套 名称空间与作用域 闭包函数 函数之装饰器 函数之迭代器 函数之生成器 内置函数 一.函数补充进阶 1.函数对象: 函数是第一类对象,即函数可以当作数据传递 ...
- flask模板语言,装饰器,路由及配置
1.模板语言jinja2 Flask中默认的模板语言是Jinja2 1.0 模板传参 from flask import Flask,render_template app = Flask(__nam ...
- sitemesh 2.4 装饰器学习
SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的 SiteMesh是OpenSymphony团队开发的JEE框架之一,它是一个非常优秀的页面 ...
- 巨蟒python全栈开发django5:组件&&CBV&FBV&&装饰器&&ORM增删改查
内容回顾: 补充反向解析 Html:{% url ‘别名’ 参数 %} Views:reverse(‘别名’,args=(参数,)) 模板渲染 变量 {{ 变量名 }} 逻辑相关 {% %} 过滤器: ...
随机推荐
- 由于 Exception.tostring()失败,因此无法打印异常字符串
console程序执行错误时,不显示异常信息. 解决方法: 在命令行修改显示字符格式 chcp 936
- svn分支使用 SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤
比较好的介绍了分支的创建和使用. 转:http://blog.csdn.net/vbirdbest/article/details/51122637
- vue 跳外链
var host = window.location.host;var protocal = window.location.protocolwindow.location.href = protoc ...
- Oracle.PL/SQL高级
一.匿名块 .使用returning ... INTO 保存增删改表数据时的一些列的值 ()增加数据时保存数据 DECLARE v_ename emp.ename%TYPE; v_sal emp.sa ...
- isScroll 插件在iPhone 5s 和以上版本
才加入这个移动项目组三天,解决一个同事(请假),解决一个切换头部tab 选型时,下拉数据,再次切换到另外一个选项时,出现滚动条距离顶部有些距离,当频繁操作会出现距离顶部距离加大问题(第二天衍生出其他b ...
- 归并排序(Merging Sort)
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 正则:img的url,width,height 和 a标签的url以及替换
代码:// 内容:$detail['content'] //img的url,width,height $img = array(); $matches = array(); $regeImg = '/ ...
- 深入理解Connector
上一篇主要是从各个容器的生命周期的角度讲了一下整个tomcat的运行流程,说明了各个容器之间的调用关系.但并没有太过详细的说明每一个组件并区分他们. 下面从功能的角度上详细的分析一下connector ...
- 《Python》进程收尾线程初识
一.数据共享 from multiprocessing import Manager 把所有实现了数据共享的比较便捷的类都重新又封装了一遍,并且在原有的multiprocessing基础上增加了新的机 ...
- 深入理解java虚拟机---虚拟机工具jhat(十六)
jhat JVM Heap Analysis Tool命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器 ...