使用 Pyqt5 GUI 页面请求 FastAPI 后端 API,实现逻辑功能

使用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做一个登录注册页(完结)

本文将介绍用 PyQt5+FastAPI+SQLAlchemy+Redis+Celery 做的一个登录注册页,使用邮箱接收验证码本文介绍是前后端分离的实现方式,厚后端使用 FastAPI+SQLAlchemy+Redis+Celery,你可以将 PyQt5 改为 PySide2 以获得更宽松的开源协议

注意

本文由于涉及到的代码较多,将会是一个系列,会有多篇文章,且不在像 前后端未分离项目一样,做详细步骤描述,只写主要内容,详细的代码你需要自主查看 GItHub 上的公开仓库

系列文章索引

  1. 设计登录注册页面
  2. 添加代码运行登录注册页,并为其添加一些样式,和调用资源文件
  3. 使用 FastAPI+SQLAlchemy+Redis+Celery 编写API
  4. 使用 Pyqt5 GUI页面请求API,实现逻辑功能

环境

使用到的开源库如下

# requirements.txt
# The project is developed based on Windows Python3.8-64, version: 3.8.10
PyQt5
PyQt5-stubs
pywin32
email-validator

结构

结构解释如下,方便你理解

--- QtLoginRegistrationClient
  |--- core
     |--- __init__.py
     |--- login_register.py            # 登录注册
  |--- lib
     |--- __init__.py
     |--- basic_function.py            # 存放公共方法
     |--- crypto.py                    # 本地密码的加解密,存在在 SQLite3 中
     |--- crypto_sqlcipher.py          # 将 SQLite3 替换为 SQLCipher,实现本地数据库密码访问
     |--- network.py                   # 网络请求:get,post,put,delete
  |--- static
     |--- qss                          # 存放qss样式的目录
        |--- login_register.qss        # 样式(类似于CSS)
     |--- resources.qrc                # 新加的资源文件
     |--- resources_rc.py              # 资源文件转换的 Py 文件
  |--- uis
     |--- __init__.py
     |--- LoginRegisterEmail.py        # ui 文件转换的 Py 文件
     |--- LoginRegisterEmail.ui        # 登录注册页
     |--- MianWindow.py                # ui 文件转换的 Py 文件
     |--- MianWindow.ui                # 系统主页
  |--- main.py                         # 入口
  |--- main_window.py                  # 主窗口
  |--- setting.py                      # 设置

区别

与 前后端未分离的相比,主要区别如下

  1. 取消数据库交互,而是改用QtNetwork实现网络请求
  2. login_register.py中,全部改为用 网络请求 实现功能
  3. SQLite3替换为SQLCipher,实现本地数据库密码访问,编译pysqlcipher3平替SQLite3

GitHub完整代码
本文章的原文地址
GitHub主页

posted @ 2024-03-22 17:24  星尘的博客  阅读(78)  评论(0编辑  收藏  举报