问题标签 [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.
fastapi - Tortoise 和 Fastapi 获取相关资源
我在 FastAPI 上有以下 Tortoise 模型:
我想,在获取用户时,也能得到它的好友请求(他们请求与其他人请求成为好友的好友请求。)
我的 FastAPI 路由中的查询:
生成的 UserOut 对象具有正确填充 FriendRequest 对象的字段friendships_requestor 和friendships_requestor。但是,这些 FriendRequest 对象不包括请求者和被请求者。(既不是 id 也不是 UserOut 对象)。我可以从当前用户的 id 中推断出两者之一,但真的很想知道如何包含它们?
样本输出:
python - 如何使用乌龟 ORM 执行本机 SQL
我想用龟甲ORM来执行原生SQL。我应该怎么办?我找不到这样做的方法或类。
python - AttributeError:类型对象“分数”没有属性“日期”
我正在尝试使用 orm for ORM 在 fastAPI 中制作记分牌 API。我遇到了一些错误,我完全不知道为什么,因为我的 Score 类有属性日期。
主要.py:
模型.py:
错误:
AttributeError: type object 'Score' has no attribute 'date'
完整追溯:
python - 在我第一次从 Docker PHPMyAdmin 连接到 mySQL 实例之前,无法从 Tortoise/Python 连接到 Docker mySQL 实例
以下 docker-compose.yaml 中描述的“rest”服务在启动时运行一个 python 脚本,该脚本尝试连接到“db”服务的 mysql 实例。
每次我运行 docker-compose up 时,所有服务都会成功启动,但是“rest”服务会在调试控制台中不断报告“无法连接到 mySQL db”。
该问题的一个非常奇怪的解决方法似乎是打开 phpMyAdmin,并首先通过它登录到 mySQL 实例。从 phpMyAdmin 登录到 mySQL 数据库后,我返回到 docker-compose 控制台,我看到“rest”python 脚本已成功建立其数据库连接。
我已经一遍又一遍地验证了这种行为,但是我不知道为什么 mySQL 实例要求我首先使用 phpMyAdmin 登录,然后 python 脚本才能建立它自己的连接......
我的 python/tortoise 连接代码如下:
Docker-compose.yaml
fastapi - 对于创建操作,使用表单数据,但在 Tortoise ORM 文档中他们使用 JSON,最佳实践是什么?
我正在尝试使用 FastAPI 和 Tortoise ORM 制作一个 Web App 项目
我想创建一个用户(注册),主要数据是前端发送的表单数据,FastAPI 文档确实告诉我们如何处理表单数据。
但是 Tortoise ORM 文档中的示例(FastAPI 示例)使用简单的 JSON 数据。
最佳做法是什么,我应该怎么做?
- 链接到 Tortoise ORM 和 FastAPI 示例:https ://tortoise-orm.readthedocs.io/en/latest/examples/fastapi.html#main-py
PS:只是一个建议,我应该使用 Tortoise ORM 还是切换到另一个 ORM,因为 Tortoise 仍然是一个年轻的项目(请同时考虑我应该考虑哪个其他 ORM)
如果我写错了,请原谅我是网络开发的新手。
感谢您的时间和帮助。
python - 在 `tortoise.field.ForeignKeyField` 中使用关键字 `related_name`
我已经阅读了 Tortoise-ORM 的文档,但是,至少对我来说,文档并不清楚related_name
. tortoise.field.ForeignKeyField
它仅声明:
我正在使用 Aerich(Tortoise-ORM 迁移管理器),但我看不到对related_name
模型中使用的 ' 的单个引用。我还检查了数据库Postgres
,找不到任何关于它的参考资料。也许我不知道去哪里找。
不幸的是,在 Tortoise-ORM 文档中没有关于此的简单实用示例。
我有一个非常简单的模型,例如:
在这方面如何related_name
运作?
python - 解决了返回 QuerySet 而不是 ObjectType 的反向引用
给定带有外键的模型:
具有相关名称:
使用此代码定义:
解析给定路径时
按预期返回 QuerySet 而不是 Person。
重现
预期行为
由于返回的对象是类型类玩具,我希望能够解析 toy.builder,就像实例 pinocchio.builder 一样。但由于某种原因,它返回一个查询集。如我们所见,最后一个 printf 返回一个 QuerySet 但我期望的是一个 Person,如下所示的输出
如何转换QuerySet
预期Person
对象中的?(或类似的东西)
python - 如何使用 FastAPI 在 TortoiseORM 上建立关系
如何在使用 FastAPI 和 Tortoise-ORM 时使用 ForeignKey 关系并以 json 形式返回它们?
我知道如何直接使用 TortoiseORM 来实现它们,但是在尝试通过 FastAPI 执行相同操作时失败了。我的模式没有显示任何一种关系,而且我也不知道如何创建/更新对象以通过 HTTP/JSON 表示此信息。
Bellow 遵循一个带有简单模型的小型运行代码(两个元素,一个简单的关系和整个 FastAPI 样板来获取/放置/发布对象。该代码需要先安装tortoise-orm
fastapi
和uvicorn
。要运行它,只需python main.py
(文件必须是命名main.py
,否则uvicorn.run
调用将失败)。
此外,为了更简单的测试,使用一个小的 bash 脚本来创建/更新一些对象。
此代码段在 Python 3.9、Tortoise ORM 0.17.8 和 FastAPI 0.70.0 上运行良好。
fastapi - Tortoise-orm,fastapi 递归模型
我正在做一些 POC 工作,并将一些代码从 fastapi+sqlalchemy 移植到 fastapi+tortoise-orm。
我有一些相互引用的pydantic模型,有点:
这涵盖了两个数据库模型 - 域和邮箱,它们之间具有一对多的关系。
这在 sqlalchemy+fastapi 中工作正常 - 因为 DB 模型和 pydantic 模式是完全分开定义的,只要 db 方法返回具有正确属性的对象,一切正常。
使用 tortoise-orm+fastapi 我们使用完全基于数据库的 pydantic_model_creator,并且似乎没有给我任何机会来配置它应该用于特定关系的 pydantic 模型。
有没有办法让这种事情发挥作用?感觉就像使用 pydantic_model_creator 在数据库逻辑/模式和表示逻辑/模式之间做了很多交叉污染,所以我很乐意摆脱它 - 但我不确定 tortoise-orm 是否可以在没有 pydantic_model_creator 的情况下使用 pydantic 驱动。
python - 将模块文件夹名而不是文件名添加到 Tortoise ORM config_file
我正在使用 jsonconfig_file
方法进行 Tortoise ORM 设置。
这是工作文件的一部分:
my_models
是文件夹,users.py
并且teams.py
是它的文件。
我只想将my_models
文件夹名称放入配置文件中,而不必放入my_models.users
等my_models.teams
。在更大的项目中,这可能看起来很丑陋,那么有没有办法只使用文件夹名称呢?
这应该是期望的结果: