FASTAPI官方项目(二)-数据库介绍、后端文件结构介绍

前言

这个后端有标准的 OAuth2.0 用户认证,token 是 jwt 规范的 beaere token,并且数据库中存的是用户密码的 hashcode,
登录也只是检验的用户提交的密码的 hash 与数据库是否一致,hashcode 是无法还原成
原始密码的,也就是说极端情况数据库被盗,别人也无法看到用户的密码。

ORM概念

ORM(Object Ralational Mapping,对象关系映射)用来把对象模型表示的对象映射到基于S Q L 的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法。O R M 技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化 。

简单说,你如果改了字段,可以不写 sql,就能同步到数据库里面去。
这玩意带了一个SQLAlchemy
就是almber那个文件夹
并且这个提供了一个版本管理机制,有类似于 git 的一部分功能,你可以回退,撤销更改。

数据库连接

使用 url 打开在线数据库时,需要添加一个数据库服务器,这里有个小坑,连接服务器host填localhost和127.0.0.1都是不对的。
需要填db

python 的*与**参数

1
2
current_user_data = jsonable_encoder(current_user)
user = schemas.User(**current_user_data)

Pgadmin连接不上

这个通过issue查到的,host别填 localhost或者你的服务器ip,host就是db

添加多设备登录控制

我起初当时通过 token 的方式来判断,在客户端请求了新的 token的时候,让旧 token 失效从而实现禁止多客户端同时登录,
后来没实现,于是加了一个字段,分以下流程

  1. 客户端输入密码登录成功后生成一个 uniqueKey ,同步到数据库中。并缓存 token,用户信息。
  2. 客户端在自动登录时,通过缓存的 token 获取对应的用户信息,判断与本地缓存的用户信息的unique key是否相等,相等不做操作,不想等则登出。

后端项目介绍

后端

schemas
models
db
core
crud
api

FASTAPI官方项目(二)-数据库介绍、后端文件结构介绍

http://blog.nightmare.press/2022/05/30/FASTAPI官方项目-二-数据库、接口/

作者

梦魇兽

发布于

2022-05-30

更新于

2023-03-11

许可协议

评论