把O从ORM中取出。

django-model-values的Python项目详细描述


imageimageimageimageimageimageimageimageimageimage

Django鼓励 直接数据访问,而不是不必要的对象开销。实施 通过对QuerySetsManagers

目标是为 使用django的orm。特别是避免低效率和竞争 与始终使用对象相关联的条件。

用法

典型的模型使用是冗长、低效和不正确的。

book=Book.objects.get(pk=pk)book.rating=5.0book.save()

通常支持正确的方法,但可以说可读性较差。

Book.objects.filter(pk=pk).update(rating=5.0)

model_values鼓励使用更好的方法来支持运算符。

Book.objects[pk]['rating']=5.0

类似的查询:

(book.ratingforbookinbooks)books.values_list('rating',flat=True)books['rating']

面向列的语法在面板数据层中很常见,并且 表现力层叠。QuerySets还支持聚合和 条件句。

books.values_list('rating',flat=True).filter(rating__gt=0)books['rating']>0books.aggregate(models.Avg('rating'))['rating__avg']books['rating'].mean()

Managers提供各种有效的基于主键的实用程序。 要启用,请在模型中实例化Manager。和任何习俗一样 Manager,它不必命名为objects,但是它被设计为 100%兼容。

frommodel_valuesimportManagerclassBook(models.Model):...objects=Manager()

F表达式也得到了增强,可以直接使用 模型更改。

frommodel_valuesimportF.filter(rating__gt=0,last_modified__range=(start,end)).filter(F.rating>0,F.last_modified.range(start,end))

安装

$ pip install django-model-values

测试

100%分行覆盖。

$ pytest [--cov]

更改

1.0

  • 使用弃用警告移动的更新相关方法
  • 可扩展的更改检测和更新
  • Django 2.2功能

0.6

  • 转换函数
  • 命名元组
  • 窗口功能
  • 距离查找
  • Django 2.1功能
  • EnumField
  • 注释items
  • 列选择中的表达式

0.5

  • F表达式运算符anyall
  • 空间查找和功能
  • django 2.0支持

0.4

  • upsert方法
  • Django 1.9数据库功能
  • bulk_update支持其他字段

0.3

  • 查找方法和运算符
  • F表达式和聚合方法
  • 数据库函数
  • 用于更新和批注的条件表达式
  • 批量更新和更改检测

0.2

  • 更改检测
  • Groupby功能
  • 命名元组

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

推荐PyPI第三方库


热门话题
java hibernate。MappingException持久类未知   其余的都是java。lang.ClassNotFoundException:雅加达。servlet。在Tomcat 9上运行时在Maven/Jersey web服务上进行筛选   java从异步任务返回结果   java阶乘程序打印出递归   停止或重新部署Spring 3.1.2、Hibernate 4.1.0、Spring DataJpa 1.1.0、Tomcat 7.0.30时出现java内存泄漏   java如何在配置文件中生成计算属性   集合java 8将ListB的所有元素合并到ListA中(如果不存在)   运行mvn verify时,java为'test'配置文件中的测试设置defaultbinder   java如何在Hashmap中删除重复的键值对?不只是复制键或值   java如何编程一个按钮以成功加载数组中的下一个数据   java将ASCII数据发送到Android Things上的UART3,最后是3个字节0xFF   多线程Java并发递增一个值   java Android应用程序登录和登录问题