客户端
为了进行任何 Prisma Client Python 查询,您需要创建并连接到一个Client
实例,例如
from prisma import Prisma
db = Prisma()
await db.connect()
await db.user.create(
data={
'name': 'Robert',
},
)
您也可以直接从模型类进行查询,有关更多信息,请参阅模型操作。
from prisma.models import User
user = await User.prisma().create(
data={
'name': 'Robert',
},
)
数据源覆盖
可以覆盖用于连接数据库的默认 URL。
db = Prisma(
datasource={
'url': 'file:./tmp.db',
},
)
上下文管理器
为了使运行小型脚本尽可能简单,Prisma Client Python 支持使用 上下文管理器 连接和断开与数据库的连接。
例如
from prisma import Prisma
async with Prisma() as db:
await db.user.create(
data={
'name': 'Robert',
},
)
这在功能上等同于
from prisma import Prisma
db = Prisma()
try:
await db.connect()
await db.user.create(
data={
'name': 'Robert',
},
)
finally:
if db.is_connected():
await db.disconnect()
HTTP 选项
Prisma Client Python 使用的一些与底层 Prisma 二进制文件通信的方法利用 HTTPX 通过 HTTP 进行通信。因此,一些 HTTPX 客户端选项 可以针对每个客户端进行配置。
可以使用 http
参数将 HTTPX 选项传递给客户端,例如
db = Prisma(
http={
'timeout': 10,
},
)
将对所有 http 操作使用 10 秒的超时时间。
您还可以通过传递 None 来删除超时,例如
db = Prisma(
http={
'timeout': None,
},
)
并非所有 HTTPX 支持的选项都受 Prisma Client Python 支持,完整的列表如下
class HttpConfig(TypedDict, total=False):
app: Callable[[Mapping[str, Any], Any], Any]
http1: bool
http2: bool
limits: httpx.Limits
timeout: Union[None, float, httpx.Timeout]
trust_env: bool
max_redirects: int
这些选项的文档可以 在这里 找到