gpt4 book ai didi

python - 将 MySQL 查询转换为 Django 查询

转载 作者:行者123 更新时间:2023-11-29 11:20:33 25 4
gpt4 key购买 nike

我正在将 FlaskApp 转换为 Django。在我的 Flask 应用程序中,我直接进行数据库查询,没有像 MySQLAlchemy 这样的 ORM。

我在转换计数查询以在 Django 中使用时遇到问题。看起来很简单,但我错过了一些东西。

带查询的旧函数

def countClients(db, begin, end, type):
c = db.cursor()
query = "SELECT COUNT(*) FROM newclients WHERE method LIKE %s AND (enddate BETWEEN %s AND %s)"
c.execute(query, (type, begin, end))
output = int(c.fetchone()[0])
return output

新查询

for year in range(2015, today.year):
for month in range(1, 13):
startdate = datetime.date(year, month, 1)
enddate = last_day_of_month(startdate)
try:
Count14.append(
newclients.objects.filter(method = 'Test Drive',
enddate__range=(startdate, enddate)
)
).count()

我尝试过的

  • 不带 Try 的查询:Except

除了我得到回溯之外,没有尝试

'NoneType' object has no attribute 'count'
  • 在查询周围添加 int()

但是 int 函数无法接受查询集。

注意我已成功使用了这些查询的部分内容,但我在这里尝试的这些查询比其他查询更复杂。

即这个可行,但更简单。

clients = newclients.objects.filter(method=method_query).filter(enddate__range=(begindate, enddate))

最佳答案

您的.count()位置错误。它需要位于第二个右括号之后,而不是第三个。

事实上,您正在对 append 的结果调用它,该结果始终为 None。

关于python - 将 MySQL 查询转换为 Django 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001317/

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