我建造的
具有Django Backend和Sveltekit Frontend的表现,安全和可靠的基于会话的身份验证系统。它具有通过github操作启用的CI。
类别提交
DIY部署
应用链接
它的实时版本是here。
屏幕截图
描述
此应用程序使用最小的依赖项(纯django-无REST API框架)来构建安全,性能和可靠(具有100%自动化测试覆盖范围,使用Python最佳统一代码标准实施静态分析),基于python的静态分析)基于会话的rest rest rest API然后由基于Sveltekit的前端应用程序消费。
用户的个人资料图像直接上传到AWS S3(在测试中,我们抛弃了S3并使用Django的InMemoryStorage进行更快的测试)。
还合并了一个自定义密码重置过程,芹菜任务进行了电子邮件发送。
前端具有弹性,因为它大多可以在没有JavaScript的情况下工作。用户会话一直持续到被破坏为止,并且经验给人以水疗和MPA的混合感觉(Rich Haris称为#TransitionAlapps)。
链接到源代码
托管在github上Sirneij / django-auth-backend
带有Sveltekit Frontend的基于Django会话的身份验证系统
django-auth-backend
基于Sveltekit Frontend和GitHub Actions的基于DJANGO会话的身份验证系统。
此应用程序使用最小依赖项(纯django-无REST API框架)来构建安全,性能和可靠(具有100%自动化测试覆盖范围,使用Python最佳统一代码标准执行静态分析) - 基于基于Sveltekit的前端应用程序消耗的基于身份验证的REST API。
用户的个人资料图像直接上传到AWS S3(在测试中,我们放弃了S3并使用Django的InMemoryStorage进行更快的测试)。
还合并了一个自定义密码重置过程,芹菜任务进行了电子邮件发送。
在本地运行
-
要运行应用程序,请克隆:
git克隆https://github.com/sirneij/django-auth-backend.git
您可以,如果需要,请抓住它的frontend counterpart。
-
将目录更改为文件夹,并使用Python 3.9、3.10或3.11(根据三个版本进行测试)创建虚拟环境。然后激活它:
允许许可证
什么
背景(是什么让您决定构建这个特定的应用程序?是什么启发了您?)
几天前,我与我的LinkedIn Connections共享了有关使用Rust(Actix-Web)和Sveltekit构建身份验证系统的series。我的联系之一requested that I make a Django version。我有义务,这里是!
我是如何构建它的(您是如何利用GitHub Action或Github代码?
后端服务是使用django与PostgreSQL数据库,REDIS for Session Storage构建的,而AWS S3用于文件存储。 API是不使用外部REST API框架(例如Django REST framework)构建的。手动处理数据序列化和JSON响应。大多数观点都是异步的。为了进行测试,大量使用了Pytest及其生态系统。 Mypy,Pylint等用于静态分析。 GitHub动作用于自动测试,覆盖范围报告和静态分析。
我学到了很多东西:
- 用
async
关键字编写django视图并在其中处理同步代码 - 使用已记录的(甚至已记录的)MultiPartParser。
- 使用Mypy,Pylint,Prospector,Pep8,Pyflakes和许多其他工具来设置和实施标准的Python代码样式。
- 手动编码表单数据,在测试期间创建上传和删除模拟文件
- 为Django应用程序设置和修复GitHub操作的问题,并使用它们自动测试和分析针对不同Python版本的应用程序
其他资源/信息
此应用程序是this series的Python(Django)版本。将撰写一系列文章来解释其建造方式。提防。