django dbcache字段

django-dbcache-fields的Python项目详细描述


Version:0.9.2
Docs:https://django-dbcache-fields.readthedocs.io/
Download:https://pypi.python.org/pypi/django_dbcache_fields
Source:https://github.com/maykinmedia/django-dbcache-fields
Keywords:django, database, cache, methods, decorator

Build statuscoverageLintlyBSD LicenseSupported Python versionsSupported Django versions

关于

此库提供了一个装饰符dbcache,用于缓存 数据库中的djangoModel方法。

它为每个 装饰。这意味着您可以使用所有orm函数,如聚合和 迁徙。可以使用现有字段或让^ TT1}$创建字段 为你。

也可以通过创建一个脏函数或 指示哪些其他模型影响此缓存值。默认情况下, 缓存值仅在保存模型时更新。

安装

您可以通过python包索引安装django_dbcache_字段 (pypi)或从源代码。

使用pip安装

$ pip install -U django_dbcache_fields

用法

要在项目中使用此功能,您需要遵循以下步骤:

  1. 安装django_dbcache_fields库:

    $ pip install django_dbcache_fields
    
  2. 在django中将django_dbcache_fields添加到INSTALLED_APPS中 项目的settings.py

    INSTALLED_APPS=(# ...,'django_dbcache_fields',)

    注意模块名中没有破折号,只有下划线。

  3. 一切都结束了。现在可以用 @dbcache

示例

显示dbcache所做工作的简单示例:

fromdjango.dbimportmodelsfromdjango_dbcache_fields.decoratorsimportdbcacheclassIngredient(models.Model):name=models.CharField(max_length=100)price=models.DecimalField(max_digits=4,decimal_places=2)classPizza(models.Model):name=models.CharField(max_length=100)ingredients=models.ManyToManyField(Ingredient)@dbcache(models.DecimalField(max_digits=6,decimal_places=2,blank=True,null=True),invalidated_by=['myapp.Ingredient'])defget_price(self):returnself.ingredients.aggregate(total=Sum('price'))['total']orDecimal()

get_price的每次调用通常都会执行数据库查询 计算所有配料的总价。然而,dbcache decorator导致向模型添加了一个新字段:aDecimalField 可以存储get_price函数的结果值,因此它不 需要反复执行相同的查询。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将命令式Java转换为函数式Java(游戏)   如何将用户输入拆分为字符数组或字符串数组,然后在java中检查是否有回文   java Kafka Streams应用程序总是在重新平衡并出现错误:协调员不知道这个成员   引发ConnectException之前的异常Java延迟   Java中的websphere JIT错误   有运行在Google App Engine上的Java版本Apache Shinding端口吗?   java Talend双类型除法   java Tomcat在servlet中给出404错误   如何通过将输入字与字符串数组中的元素进行比较来获得结果   java为什么我的GUI不显示?   Firebase中带有条件的java更新字段   Java正则表达式模式在Linux下不起作用(Amazon Beanstalk)   java中的递归素因子算法   java Android SQL删除行   jvm Java VM是在方法末尾始终为空的操作数堆栈   如何将文件中的值放入字符串中,并在Java中计算值?   HashMapJava中的密钥   java如何在不删除操作栏的情况下删除安卓 studio中的顶级