问题标签 [tortoise-orm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
467 浏览

python - 使用 Tortoise ORM 和 FastAPI 在 Heroku 上出现 SSL 错误

我未能在 Heroku 上部署一个(专门针对这个问题)基本的 FastAPI/Tortoise ORM 应用程序。

app/main.py读取_

app/models.py

Docker文件是

requirements.txt

部署后,我得到以下错误(用户和数据库都可以,我检查了)

我在https://help.heroku.com/DR0TTWWD/seeing-fatal-no-pg_hba-conf-entry-errors-in-postgreshttps://devcenter.heroku.com/articles/heroku找到了 Heroku 的指导-postgresql#heroku-postgres-ssl但我不知道如何添加sslmode=require(将其作为参数附加DATABASE_URL不起作用)。

在此先感谢您的帮助。

0 投票
1 回答
1329 浏览

python - 使用 Tortoise-ORM 在 FastAPI 中进行测试

我正在尝试在Python 3.8下使用Tortoise ORM在FastAPI中编写一些异步测试,但我不断收到相同的错误(见最后)。在过去的几天里,我一直在试图解决这个问题,但不知何故,我最近在创建测试方面所做的所有努力都没有成功。

我正在关注这个的fastapi 文档tortoise 文档

主文件

simple_test.py

我的错误取决于我是使用client1还是client2

使用client1错误

使用client2错误

哦,我也尝试过使用httpx.AsyncClient但仍然没有成功(还有更多错误)。任何想法,因为我不属于我自己。

0 投票
1 回答
1451 浏览

python - Tortoise-ORM + FastAPI 中未显示模型关系

我正在使用 Tortoise-ORM 作为它的 orm 来玩 FastAPI 并遇到了一个问题。具体来说,我无法返回模型中的关系。

这是我的应用程序结构。Structure 的灵感来自 Django 的应用程序结构。

数据库连接是app/resources/database.py这样设置的;

models参数中您可以看到有 2 个模型设置。这是两个。

应用程序/用户/models.py

应用程序/联系人/models.py

以下是用户尝试保存联系人时发生的情况。

用户可以从以下路线检索他们保存的联系人。

当用户检索他们的联系人时,它不会显示与用户的关系。在此示例中,这不是必需的,但我想弄清楚如何获取响应中的关系以供将来参考。

我浏览了文档,发现early-init是一个东西并尝试使用init_models,但这似乎不起作用。或者也许我只是不知道它是如何工作的。如果我需要使用init_models,令人困惑的部分是 1. 何时调用它和 2. 如何调用它。init_models两个论点让我很困惑。

总结一下,我有两个问题。

  1. 如何从模型中获取关系并将其返回给用户。
  2. 如果我需要使用init_models,我在哪里调用它以及使用这个应用程序结构什么是 2 个必需参数的正确方法。

先感谢您。

笔记

  1. 我尝试了以下方法来保存联系人,但结果是一样的。
0 投票
1 回答
981 浏览

python - 如何在 Tortoise ORM 中使用 db 函数

我正在尝试编写一个简单的查询,但使用 PSQL 函数 CURRENT_DATE 和 INTERVAL,例如:

如何让它发挥作用?谢谢

0 投票
1 回答
324 浏览

python - 乌龟中的 from_queryset_single 与 from_tortoise_orm(快速 api)

我是 Fast API 的新手,我正在尝试创建一个 api 来返回数据库中的学生。

下面的代码似乎工作

这似乎也有效

但是,这不起作用

但是,两者基本上都试图返回一个学生对象。正确的 ?那么,有什么区别。好像我不明白 from_queryset_single 和 from_tortoise_orm 方法之间的区别

这是我的学生模型

提前致谢

0 投票
0 回答
1060 浏览

python - 如何使用 PydanticMeta [FastAPI,Tortoise ORM] 使 pydantic 模型等待异步函数

我目前正在开发个人理财 api,并且正在努力返回一些在 pydantic 模型中异步的功能。我正在使用 FastApi、pydantic 和 Tortoise ORM。基本上,目标是返回给定用户的所有 Budget.amount (month_base) 的总和,但问题是这个函数是异步的,当我将它作为计算字段传递给 PydanticMeta 类时,它不会被等待,因此返回值不是正确的类型,如以下错误中所述:

错误:hypercorn.error:ASGI 框架中的错误 [...] 文件“pydantic/main.py”,第 573 行,在 pydantic.main.BaseModel.from_orm pydantic.error_wrappers.ValidationError:用户month_base 值的1 个验证错误不是一个有效的浮点数(type=type_error.float)

/home/jon/ml-v3/venv/lib/python3.8/site-packages/tortoise/contrib/pydantic/base.py:88:RuntimeWarning:从未等待协程'User.month_base'

我在models.py中的代码:

我在 schemas.py 中的代码:

我在 main.py 中的代码:

我应该如何继续将我的 month_budget 字段传递给我的用户模式,但指定给 pydanticModel 以等待其结果?谢谢您的帮助 !

0 投票
2 回答
307 浏览

python - FastAPI 应用程序在安装 Openpyxl 时抛出 ValueError

我想使用 Openpyxl 在我的 FastAPI 应用程序中操作 Excel 文件。我安装了 Openpyxl,然后我的应用程序抛出了 ValueError。我没有导入模块或任何东西,只是安装它会破坏我的应用程序。

以下是错误。

从错误来看,它似乎是一个 Pydantic 错误,但我无法修复它。以下是它似乎引发错误的模型。

app/resources/core_model.py

app/users/models.py

app/users/schemas.py

我的应用程序在安装 Openpyxl 后立即中断的事实让我认为这并不是一个真正的问题。

环境

Docker - 20.10.2
Python - 3.9.2
FastAPI - 0.63.0
Openpyxl - 3.0.6
Tortoise ORM - 0.16.21

任何建议都会有所帮助。
先感谢您。

0 投票
0 回答
284 浏览

tortoise-orm - 预取在 Tortoise-ORM 中没有按预期工作

我正在尝试使用过滤器和偏移/限制查询模型。然后对于每个井,我希望获得最新的场景,如果有的话最好批准。然后对于每个场景得到它的下降参数

我得到的结果是所需的井列表。然而,只有一口井有情景。如果我将场景的限制增加到 2,那么我会根据整个井列表而不是每个井获得两个最新的场景!如何调整查询以获得所需的结果?

0 投票
0 回答
93 浏览

python - 如何在 Tortoise orm 中使用 CASE WHEN THEN ELSE

嗨,我正在尝试在 tortoise-orm 中使用 CASE WHEN THEN ELSE。我尝试了以下但没有奏效:

我知道 CASE受 pypika 支持,但我不知道如何在 tortoise-orm 中使用它。此外,我确实想使用 CASE,因为我想在一次更新中使用多个字段的用例,而不是使用不同的filter(...)参数进行多次更新。

知道怎么用CASE()吗??

0 投票
1 回答
932 浏览

python - 使用 fastapi 初始化乌龟 orm 的问题

我遇到了乌龟 orm 和 fastapi 的问题

我有以下代码app.py;我跳过了一些行以使其简洁

app.py

这工作正常并且能够创建用户

但现在我正试图从另一个文件做同样的事情

auth.py

但这不起作用,我在 404 错误响应中得到了这个

我认为问题from_tortoise_orm(user_obj)在于

无法在auth.py文件中工作,因为由于某种原因我无法在app.py文件之外运行它,这是初始化乌龟的地方

我该怎么做才能解决这个问题?我遇到的部分问题是如何能够从存在的外部调用app.py乌龟register_tortoise初始化

更新:

文件夹结构