zoukankan      html  css  js  c++  java
  • Django缓存与信号

    缓存
    第一步在setting中设置使用什么进行缓存(文件,redis,数据库等)
    
    使用缓存
    全栈使用缓存(中间件中使用缓存)
        MIDDLEWARE = [
        'django.middleware.cache.UpdateCacheMiddleware',
        # 其他中间件...
        'django.middleware.cache.FetchFromCacheMiddleware',
    ]
    
    在视图函数中使用缓存:
    	from django.views.decorators.cache import cache_page
    	@cache_page(60 * 15) 
    	def fun(request):
    		pass
    在路由匹配中使用缓存
    	from django.views.decorators.cache import cache _page
    	urlpatterns = [
    	url(r'^foo/([0-9]{1,2})/$',cache_page(60 * 15)(my_view)),
    ]
    在函数里面使用缓存
    	函数中使用缓存是最基本的使用方法,跟在其他非 django 中使用的方式一致,无非就是使用 cache.set() 和 cache.get() 方法。
    模板中使用缓存
    	{% load cache %}
    		{% cache 500 ‘cache_name’ %}
    		缓存内容
    	{% endcache %}
    
    信号
    什么是信号:就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者。
    Django内置信号
    Model signals  数据库执行某个操作前后
    Management signals 执行migrate命令前,后
    Request/response signals 关于请求的信号
    Test signals 使用test测试
    Database Wrappers 数据库连接时,自动发生的
    
    自定义信号
    	定义信号
    	import django.dispatch
    	pizza_done = django.dispatch.Signal(providing_args=["toppings", "size"])
    	 注册信号
    	def callback(sender, **kwargs):
    		print("callback")
    		print(sender,kwargs)
    
    	pizza_done.connect(callback)
    	触发信号
    	from 路径 import pizza_done
    
    	pizza_done.send(sender='seven',toppings=123, size=456)
  • 相关阅读:
    sort
    usaco-3.1-humble-pass
    usaco-3.1-inflate-pass
    usaco-3.1-agrinet-pass
    usaco-2.4-fracdec-pass
    usaco-2.4-comhome-pass
    usaco-2.4-cowtour-pass
    usaco-2.4-maze1-pass
    usaco-2.4-ttwo-pass
    usaco-2.3-concom-pass
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/14312930.html
Copyright © 2011-2022 走看看