2020年7月14日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 我们可以更灵活的定制返回结果。(这部分是相对高级的内容,如果你是初次接触FastAPI那么可以忽略) 参数responses 我们可以传递给路径操作装饰器一个参数responses
阅读全文
posted @ 2020-07-14 14:57
麦克煎蛋
阅读(2830)
推荐(0)
2020年7月13日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 默认情况下,FastAPI会基于JSONResponse来返回Response。 如果我们直接返回Response,数据格式不会被自动转换,并且交互式文档也不会自动生成。 下面是一
阅读全文
posted @ 2020-07-13 15:49
麦克煎蛋
阅读(7778)
推荐(0)
2020年7月10日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 在FastAPI路径操作中,我们通常直接返回以下数据类型:dict,list,Pydantic模型,数据库模型以及其他数据类型。 FastAPI通过jsonable_encoder
阅读全文
posted @ 2020-07-10 15:40
麦克煎蛋
阅读(5761)
推荐(1)
2020年7月9日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 有时候我们需要在request执行之后继续一些操作,但终端并不需要等待这些操作完成才能收到response。 其中一些场景举例如下: 1、在执行完request之后发送邮件通知。
阅读全文
posted @ 2020-07-09 14:17
麦克煎蛋
阅读(2904)
推荐(0)
2020年7月8日
摘要:
我们可以利用 encode/databases 来在FastAPI中支持数据库的异步访问。 兼容以下数据库: PostgreSQL MySQL SQLite 实际中暂未用到,这部分待完善。 参考文档: https://github.com/encode/databases https://fasta
阅读全文
posted @ 2020-07-08 15:22
麦克煎蛋
阅读(4452)
推荐(0)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! SQLAlchemy是一个基于Python实现的ORM框架。它提供了一种方法,用于将用户定义的Python类与数据库表相关联,并将这些类(对象)的实例与其对应表中的行相关联。它包括
阅读全文
posted @ 2020-07-08 15:15
麦克煎蛋
阅读(13620)
推荐(2)
2020年7月2日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 下面我们模拟用户登陆的过程,具体讲解下登陆验证的流程,并完善代码逻辑。 密码哈希 为了数据安全,我们利用PassLib对入库的用户密码进行加密处理,推荐的加密算法是"Bcrypt"
阅读全文
posted @ 2020-07-02 11:05
麦克煎蛋
阅读(6262)
推荐(0)
2020年7月1日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! JWT简介 基于JWT的Token认证机制实现(一)概念 基于JWT的Token认证机制实现(二)认证过程 OAuth2PasswordBearer OAuth2PasswordB
阅读全文
posted @ 2020-07-01 14:28
麦克煎蛋
阅读(7128)
推荐(0)
2020年6月30日
摘要:
登录 第一次认证:第一次登录,用户从浏览器输入用户名/密码,提交后到服务器的登录处理的Action层(Login Action); Login Action调用认证服务进行用户名密码认证,如果认证通过,Login Action层调用用户信息服务获取用户信息(包括完整的用户信息及对应权限信息); 返回
阅读全文
posted @ 2020-06-30 16:46
麦克煎蛋
阅读(1405)
推荐(1)
摘要:
JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。 JWT的组成 一个JWT实际上就是一个字符串,它由三部分组成:头部、载荷与签名。将这三段信息文本用.链接一起就构成了Jwt字符串。就像这样: eyJhbGciOiJIUzI1
阅读全文
posted @ 2020-06-30 16:27
麦克煎蛋
阅读(1952)
推荐(0)
2020年6月29日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 在系统安全、身份验证以及权限授权方面通常来说有各种各样的处理方式,但大多都比较复杂。 在很多框架和系统里,涉及安全和身份验证的工作往往都比较繁琐,并且代码量也巨大。 我们先简单了解
阅读全文
posted @ 2020-06-29 11:03
麦克煎蛋
阅读(3781)
推荐(0)
2020年6月10日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! FastAPI支持依赖项在请求结束后做一些额外的工作。 要实现这个功能,我们需要用yield代替return,然后其后添加一些额外的工作。 工程示例 这是一个依赖项函数的例子,我们
阅读全文
posted @ 2020-06-10 14:38
麦克煎蛋
阅读(1503)
推荐(0)
2020年6月9日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 在有些情况下,我们并不需要依赖项的返回值,但仍然需要依赖项被执行。 在这种情况下,我们可以通过路径操作装饰器来操作依赖项的一个列表。 通过路径操作装饰器添加依赖项 路径操作装饰器接
阅读全文
posted @ 2020-06-09 15:09
麦克煎蛋
阅读(1506)
推荐(0)
2020年6月8日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 我们可以创建有子依赖项的依赖项,具体依赖深度不受限制。 FastAPI会处理好依赖项之间的关系。 我们先声明第一个依赖项函数: def query_extractor(q11: s
阅读全文
posted @ 2020-06-08 16:49
麦克煎蛋
阅读(1058)
推荐(0)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 2020.08.06 完成工程示例,已上传至GitHub: https://github.com/zhiyongma/fastproject 2020.07.30 第一遍基本翻译完
阅读全文
posted @ 2020-06-08 16:21
麦克煎蛋
阅读(10902)
推荐(8)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 目前为止,我们看到的依赖项的声明都是函数。实际上这只是声明依赖项的方式之一。 依赖项只要是可调用的即可。Python类也是可调用的。因此在FastAPI中,我们可以用Python类
阅读全文
posted @ 2020-06-08 15:40
麦克煎蛋
阅读(1310)
推荐(0)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! FastAPI有一个强大并且简单易懂的系统:依赖注入系统。 什么是"依赖注入" "依赖注入"首先意味着在程序中我们的代码可以声明一些它必须依赖的项:我们称之为dependencie
阅读全文
posted @ 2020-06-08 15:34
麦克煎蛋
阅读(2914)
推荐(0)
2020年6月4日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。
阅读全文
posted @ 2020-06-04 18:22
麦克煎蛋
阅读(3402)
推荐(0)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 除了自定义中间件,我们也可以直接使用其他的中间件。 FastAPI通过 app.add_middleware() 操作来引入已定义的中间件。 from fastapi import
阅读全文
posted @ 2020-06-04 18:20
麦克煎蛋
阅读(6392)
推荐(0)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 我们可以在FastAPI应用中使用中间件。 中间件实际上是一个函数,在每个request处理之前被调用,同时又在每个response返回之前被调用。 1、首先接收访问过来的requ
阅读全文
posted @ 2020-06-04 18:17
麦克煎蛋
阅读(5040)
推荐(0)
2020年5月28日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 如果使用API时有错误发生,你需要通知给客户端(Web端或者API使用者)这个错误信息。 常见的错误信息为: 客户端没有权限进行相关的操作。 客户端找不到对应的路径操作。 客户端找
阅读全文
posted @ 2020-05-28 16:53
麦克煎蛋
阅读(5234)
推荐(0)
2020年5月26日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 在进行数据存储或者传输的时候,有时候我们需要把数据(比如Pydantic模型)转换成JSON兼容的格式(如dict、list等)。 FastAPI提供了 jsonable_enco
阅读全文
posted @ 2020-05-26 14:46
麦克煎蛋
阅读(2272)
推荐(0)
2020年5月25日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 我们可以用Form组件来接收表单数据。 1、安装组件 pip install python-multipart 2、导入组件 from fastapi import Form 3、
阅读全文
posted @ 2020-05-25 16:47
麦克煎蛋
阅读(2727)
推荐(0)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 一、通过参数status_code自定义状态码 我们可以用参数status_code来声明Response状态码。 支持任意路径操作: @app.get() @app.post()
阅读全文
posted @ 2020-05-25 16:25
麦克煎蛋
阅读(4028)
推荐(2)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 一、Response模型 在路径操作中,我们可以用参数response_model来声明Response模型。 from typing import List from fasta
阅读全文
posted @ 2020-05-25 14:28
麦克煎蛋
阅读(4330)
推荐(0)
2020年5月21日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 读取Header信息 基于Query、Path、Cookie等模块同样的模式,我们可以利用Header模块来声明headers。 我们可以用定义其他模块参数同样的方式,便捷的定义H
阅读全文
posted @ 2020-05-21 16:48
麦克煎蛋
阅读(5301)
推荐(0)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 读取Cookie信息 基于Query、Path等模块同样的模式,我们可以利用Cookie模块来声明cookies。Cookie是Query、Path的姐妹类,它们都继承自Param
阅读全文
posted @ 2020-05-21 16:44
麦克煎蛋
阅读(3865)
推荐(0)
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 目前为止,我们主要用到了一些通用的数据类型,比如int、float、str、bool等。 但我们也可以用一些相对复杂的数据类型,并且仍然可以得到以下的功能支持: 编辑器支持 数据格
阅读全文
posted @ 2020-05-21 10:45
麦克煎蛋
阅读(1974)
推荐(0)
2020年5月20日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 一、Pydantic模型的附加信息 与前面讲过的Query、Path、Body类似,我们也可以为Pydantic模型添加附加信息,基于模块Field。 1、导入Field模块 fr
阅读全文
posted @ 2020-05-20 21:07
麦克煎蛋
阅读(9433)
推荐(1)
2020年5月18日
摘要:
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 三、路径参数附加信息 对路径参数附加信息的支持,FastAPI通过Path模块来实现。 1、导入Path模块 from fastapi import Path 2、添加附加信息 所
阅读全文
posted @ 2020-05-18 21:20
麦克煎蛋
阅读(1333)
推荐(0)