FASTAPI 学习随记


   Query 是 FastAPI 专门用来装饰查询参数的类
   

2  sqlalchemy 里面的 join
   join 默认是inner join 表示将A表与B表进行内连接操作,即只返回A表和B表中有匹配关系的数据。
   isouter  表示是left join


3
虚拟环境

pip3.10 install pipenv

pipenv install 

pipenv shell


在FastAPI中,函数前面的`async`关键字表示该函数是一个异步函数。异步函数是一种特殊的函数,它可以在执行某些耗时操作时,不会阻塞其他代码的执行。相比于同步函数,异步函数能够更高效地处理并发请求。

使用`async`关键字定义的函数可以包含`await`关键字,用于等待异步操作的完成。当遇到`await`关键字时,函数会暂停执行,并将控制权交给事件循环(Event Loop),允许其他任务继续执行。一旦异步操作完成,函数会从暂停的地方继续执行。

在FastAPI中,使用异步函数可以提高应用程序的性能和响应能力,特别是在处理大量并发请求或需要与外部服务进行交互的情况下。


page: Annotated[int, Query(...)] = None

在 FastAPI 中,Query 方法是用于处理查询参数的一种工具
Query 是 FastAPI 提供的一个装饰器,用于声明函数参数是查询参数。
它允许我们指定参数的类型、默认值、验证规则等

设置默认值:Query(..., default=...)
添加验证规则:Query(..., min_length=..., max_length=...)
声明可选参数:Query(..., alias=..., deprecated=...)


6

json.loads()
json.loads() 是一个 Python 函数,用于将 JSON 格式的字符串解析成 Python 对象。例如,它可以将 JSON 字符串转换为 Python 字典或列表。这个函数非常有用,因为它允许程序读取和处理 JSON 数据,这是一种轻量级的数据交换格式。在 Python 中,loads 的意思是 ‘load string’,所以 json.loads() 就是从字符串中加载 JSON 数据。如果你有一个 JSON 格式的字符串,你可以使用 json.loads() 来解析它,并将其转换为 Python 可以操作的数据结构

7
断言 assert

断言(assert)语句在Python中用于检查给定的表达式是否为**True。如果表达式为False,则会引发AssertionError**。它允许您通过验证程序状态的假设来尽早捕获错误。

以下是它的工作原理:

在**assert**关键字后面编写一个表达式。
如果表达式为**True**,程序将继续正常执行。
如果表达式为**False,将引发AssertionError**,程序停止运行


url.scheme

URL Scheme(统一资源定位符方案)是一种标准化的协议,用于在移动应用程序之间传递数据和命令。它允许应用程序将用户重定向到其他应用程序或执行特定任务,例如发送电子邮件、拨打电话、分享内容等。

一个 URL Scheme 包含两个主要部分:

Scheme(协议):Scheme 是 URL 的初始部分,用于定义访问资源所使用的协议或方法。常见的 Scheme 包括 http、https、ftp、mailto 等。例如:
http://www.example.com:这里的 Scheme 是 http。
mailto:user@example.com:这里的 Scheme 是 mailto。
Host(主机):Host 是 URL 的主要部分,指定了资源所在的服务器或域名。例如:
http://www.example.com:这里的 Host 是 www.example.com。
总之,URL Scheme 在不同应用程序之间实现无缝集成,让我们可以通过 URL 启动其他应用程序或执行特定操作。



安装 vitepress 命令
npm install vitepress@1.1.3 --save-dev


10 

国际化命令

生成.po
pybabel extract -F trans/babel.cfg -k lazy_gettext -o trans/en/LC_MESSAGES/messages.pot qverse_management

生成.mo

msgfmt trans/ja/LC_MESSAGES/messages.po -o trans/ja/LC_MESSAGES/messages.mo

pybabel extract:这是PyBabel工具的一个命令,用于从源文件中提取出可本地化的消息1。
-F trans/babel.cfg:这个选项指定了映射配置文件的路径。这个文件包含了如何从源代码中提取文本的规则1。
-k lazy_gettext:这个选项告诉PyBabel除了默认的关键字外,还应该查找lazy_gettext函数中的文本1。
-o trans/en/LC_MESSAGES/messages.pot:这指定了输出文件的路径。POT文件包含了所有提取出来的消息1。
qverse_management:这是最后一个参数,指定了源代码的位置,PyBabel将从这个目录开始搜索并提取文本。
总的来说,这个命令会从qverse_management目录中提取文本,根据trans/babel.cfg文件中定义的规则,查找lazy_gettext标记的文本,并将结果保存在trans/en/LC_MESSAGES/messages.pot文件中。这个POT文件随后可以用来创建不同语言的翻译文件。

11.

ContextVar 是 Python 3.7 及更高版本中引入的一个类,用于声明和使用上下文变量。这些变量对于异步编程特别有用,因为它们可以在代码的不同部分之间安全地传递数据,而不会受到其他并发代码的干扰。

简单来说,ContextVar 允许你在程序的一个部分设置一个值,然后在程序的另一个部分获取这个值,即使这两部分是在不同的异步任务中执行的。这是通过创建一个独立于线程的上下文来实现的,这样每个任务都可以有自己的变量副本。

这对于像 FastAPI 这样的异步框架特别有用,因为它允许每个请求处理过程中保持状态,而不会与其他请求混淆。例如,你可以使用 ContextVar 来存储当前用户的信息,这样无论何时访问,你都可以确保获取的是正确的用户数据,而不会因为其他并发请求而出错。

在技术层面,ContextVar 通过创建一个可以在整个请求处理过程中保持不变的变量来工作,即使在处理请求的过程中有许多异步操作发生。这使得在异步编程中管理状态变得更加容易和安全

msgfmt trans/ja/LC_MESSAGES/messages.po -o trans/ja/LC_MESSAGES/messages.mo


msgfmt mosaicms/core/i18n/en_US/LC_MESSAGES/messages.po -o mosaicms/core/i18n/en_US/LC_MESSAGES/messages.mo

12.

alembic revision --autogenerate -m 'xxx'  生成迁移文件

alembic upgrade head  执行迁移

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值