Prisma Client Python 是一个自动生成且完全类型安全的数据库客户端
项目描述
什么是 Prisma 客户端 Python?
Prisma Client Python 是 Prisma 的非官方实现,它是下一代 ORM ,与Prisma Migrate等工具捆绑在一起,使使用数据库尽可能容易。
Prisma Client Python 可用于任何Python 后端应用程序。这可以是 REST API、GraphQL API 或其他任何需要数据库的东西。
为什么要使用 Prisma Client Python?
与其他 Python ORM 不同,Prisma Client Python 是完全类型安全的,并为使用和不 async
使用. 您所要做的就是在Prisma 模式文件中指定您希望用于项目的客户端类型。
核心特点:
支持的数据库提供程序:
- PostgreSQL
- MySQL
- SQLite
- MongoDB(实验性)
- SQL Server(实验性)
棱镜如何工作?
本节对 Prisma 的工作原理及其最重要的技术组件进行了高级概述。如需更全面的介绍,请访问文档。
Prisma 架构
每个使用 Prisma 工具包中的工具的项目都从一个Prisma 模式文件开始。Prisma 模式允许开发人员以直观的数据建模语言定义他们的应用程序模型。它还包含与数据库的连接并定义了一个生成器:
// database
datasource db {
provider = "sqlite"
url = "file:database.db"
}
// generator
generator client {
provider = "prisma-client-py"
}
// data models
model Post {
id Int @id @default(autoincrement())
title String
content String?
views Int @default(0)
published Boolean @default(false)
author User? @relation(fields: [author_id], references: [id])
author_id Int?
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
在此架构中,您需要配置三件事:
- 数据源:指定您的数据库连接。在这种情况下,我们使用本地 SQLite 数据库,但是您也可以使用环境变量。
- Generator:表示您要生成 Prisma Client Python。
- 数据模型:定义您的应用程序模型。
在此页面上,重点是生成器,因为这是特定于 Prisma Client Python 的模式的唯一部分。您可以在各自的文档页面上了解有关数据源和数据模型的更多信息。
棱镜发生器
prisma 模式可以定义一个或多个由generator
块定义的生成器。
prisma generate
生成器确定在您运行命令时会创建哪些资产。该provider
值定义将创建哪个 Prisma 客户端。在这种情况下,因为我们要生成 Prisma Client Python,所以我们使用该prisma-client-py
值。
output
您还可以使用该选项定义将生成客户端的位置。默认情况下,Prisma Client Python 将生成到它安装到的相同位置,无论是在虚拟环境中、全局 python 安装还是可以导入 python 包的任何其他位置。
有关更多选项,请参阅配置 Prisma Client Python。
使用 Prisma Client Python 访问您的数据库
只想使用 Prisma Client Python 而不担心任何设置?你可以在gitpod上在线试用。
安装 Prisma 客户端 Python
任何 python 项目的第一步都应该是设置一个虚拟环境,以将已安装的包与其他 python 项目隔离开来,但这超出了本页的范围。
在此示例中,我们将使用异步客户端,如果您想使用同步客户端,请参阅设置同步客户端。
pip install -U prisma-client
生成 Prisma 客户端 Python
现在我们已经安装了 Prisma Client Python,我们需要实际生成客户端才能访问数据库。
将上面显示的 Prisma 模式文件复制到schema.prisma
项目根目录中的文件并运行:
prisma db push
此命令会将数据模型添加到您的数据库并生成客户端,您应该会看到如下内容: