gpt4 book ai didi

python - 如何在 Django 中使用 Python 函数扩展 SQLite?

转载 作者:IT王子 更新时间:2023-10-29 06:27:48 25 4
gpt4 key购买 nike

有可能define new SQL functions for SQLite in Python .我如何在 Django 中执行此操作,以便函数随处可用?

一个示例用例是使用 GREATEST() and LEAST() 的查询PostgreSQL 函数,在 SQLite 中不可用。我的测试套件运行此查询,我希望能够在运行测试时使用 SQLite 作为数据库后端。

最佳答案

这是一个 Django 代码示例,它通过调用 Python 的内置 max() 和 min() 来使用 GREATEST() 和 LEAST() 方法扩展 SQLite:

from django.db.backends.signals import connection_created
from django.dispatch import receiver

@receiver(connection_created)
def extend_sqlite(connection=None, **kwargs):
connection.connection.create_function("least", 2, min)
connection.connection.create_function("greatest", 2, max)

我只在测试中需要它,所以我把它放在我的 test_settings.py 中。如果您在代码的其他地方有它,您可能需要测试 connection.vendor == "sqlite"

关于python - 如何在 Django 中使用 Python 函数扩展 SQLite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com