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中允许初始化对Null的引用?   java手动调用javax的actionPerformed。摆动计时器   使用git分支的java Maven版本控制   Java8句子流   java JPA OneToOne和OneToMany实体实例化/创建   java如何将值添加到列表<Map<String,Object>>?   java如何使用ComboBox在一个框架内更改JPanel。getSelectedIndex()   java在比较XML和xmlunit时忽略文本差异   java无法从其他pc连接到本地主机   Java中分配对象id的优雅方式   Java中静态变量的使用   java试图从Neteller获取OAuth访问令牌时产生错误:“服务器返回HTTP响应代码:401表示URL”   Java:基元类型是否会影响性能?   java可以让hasNext()不区分大小写吗?   基于AutoCompleteTextView建议属性或AutoCompleteTextView值的java Android搜索   java流文件到firefox浏览器有时无法打开应用程序对话框   在没有ArrayList的Java中返回数组中的搜索结果   复制java。木卫一。IOException:数据错误(CRC)   java为什么我在尝试删除Facebook测试用户时会出现“方法未实现”错误   java如何使用JNA调用SetProcessReliationPolicy