把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中的多个控制台或显示屏?   java Guava:是否可能不使用多重映射映射所有条目。索引()?   java转换键值对作为JSON响应的对象?   java读取一个文本文件,然后计算字母频率,并从高到低列出它们   java Apache CXF为客户提供SEI   java如何在SQL查询中“转义”整个字符串   将JavaServlet定义为主网页servlet注释不起作用   运行jar文件时发生java FileNotFoundException   java有两种加载FXML的方法;为什么一个比另一个更受欢迎?   java无法切换到timeofindia站点页面中的帧   java Firebase Firestore在连接丢失后需要很长时间才能重新连接   java使用来自SQLite的通用数据填充RecyclerView/ListView   当我使用offer和poll独占访问它时,java是LinkedList线程安全的吗?   如何使用包含Java命名空间的XPath检索XML数据?   Spring Boot的java Elasticsearch Searchguard配置   java数组中的数组值赋值?   java保存成功,但更新失败使用Jointable的多对多Spring JPA和额外列   kotlin什么是java。构造器。单()?   简单解析例程的java问题