python3GUI--基于PyQt5+SQLite3的網址審核系統(詳細圖文)

文章目錄

  • 一.前言
  • 二.相關知識
    • 1.PyQt5
    • 2.sqlite3
  • 三.效果預覽
    • 1.登錄
    • 2.注冊
    • 3.普通用戶身份權限
    • 4.管理員身份權限
  • 三、技術討論
    • 1.數據展示表格
        • 1. 更強的表現力和交互性(前端功能豐富)
        • 2. 數據處理效率更高(支持大數據量)
        • 3. 美觀且易于自定義(前端 UI 更現代)
        • 4. 功能擴展性強
        • 5. **跨平臺一致性更好**
    • 2.數據表
  • 四.總結


此系統為粉絲定制化開發,旨在于練習數據庫使用,歡迎各位粉絲私聊博主了解軟件!
在這里插入圖片描述

一.前言

下面是粉絲大概的需求,接下來我會根據我的理解結合需求來實現整個系統,本篇博客將會詳細介紹系統實現思路以及開發流程。

做的是網頁管理系統
用qt5做的UI界面,要求數據方面連接數據庫
有登錄和注冊功能
用戶上分為管理員和普通用戶
用戶界面有
網址瀏覽,已有的網址瀏覽
查詢,查詢網址
上傳,上傳沒有的網址
修改密碼
管理員界面有
審核,對用戶提交的網址進行審核
管理用戶,對用戶的賬號進行管理
修改密碼
網頁對象包括屬性:封面(要是麻煩就不做了),站名,網址,介紹
查詢功能只查詢網址這個屬性
所有數據都保存在數據庫里

二.相關知識

1.PyQt5

PyQt5 是 Python 綁定 Qt 應用程序框架的一個庫,它用于開發跨平臺的桌面應用程序。PyQt5 由 Riverbank Computing 維護,基于 Qt 5 框架,提供了豐富的 GUI 組件和強大的功能,包括窗口控件、布局管理、信號槽機制、多線程支持、繪圖、網絡編程等。
PyQt5 的特點:
? 跨平臺支持:可在 Windows、macOS 和 Linux 上運行。
? 強大的 GUI 組件:提供 Qt Designer 可視化設計 UI,支持拖拽控件布局。
? 信號槽機制:提供高效的事件處理系統,使 UI 響應更加流暢。
? QSS 樣式表:類似 CSS,可以美化 UI 組件。
? 集成多媒體支持:基于 QtMultimedia,可實現音頻、視頻播放功能。
摘自chat GPT

在這里插入圖片描述

2.sqlite3

Python3 的 sqlite3 模塊是 Python 標準庫中內置的數據庫接口,用于操作 SQLite 數據庫。SQLite 是一種輕量級的關系型數據庫,特點是無需安裝服務器,數據直接保存在本地文件中,非常適合小型應用、原型開發或本地數據存儲。通過 sqlite3 模塊,你可以輕松地創建數據庫、執行 SQL 語句、插入和查詢數據,同時支持參數化查詢、防止 SQL 注入,并且遵循 DB-API 2.0 規范。
在這里插入圖片描述

正如大家所見,此數據庫輕若羽毛。

三.效果預覽

接下來我將使用貼圖的方式展示本系統所有功能以及功能點。

1.登錄

首先呢用戶需要登錄到系統才能使用軟件的正式功能,我們設計了簡約的登錄界面,能給用戶一種“我們的系統很簡約”的心理暗示,背景色采用淺藍色結合我們的主題“網站網址管理”,背景圖上是上網的標志“e”,也就是explore,我們的系統定義為“NetBox 管理平臺”,簡單直觀地就能讓用戶了解到我們系統的大致作用,在系統中文名下方是英文名稱,左側是我們系統的Logo,這里的logo取自Chrome的圖標,登錄界面中間區域是信息填寫區域,用戶需要填寫具體的用戶名和與之匹配的密碼,通過選擇身份的方式登錄不同的系統角色賬號,在用戶確認信息無誤之后點擊登錄按鈕進行登錄操作,我們的系統校驗通過后即可跳轉到軟件核心主界面。
在這里插入圖片描述

2.注冊

未注冊的用戶可以通過注冊的方式注冊新賬號,注冊頁面只支持用戶身份注冊,管理員的注冊按鈕點擊后會提示“注冊管理員請聯系超級管理員!”也就是說管理員賬戶需要特殊的權限才能夠注冊,普通身份無法直接注冊成管理員,只能注冊為普通用戶。用戶輸入了用戶名以及確認了密碼之后點擊確定按鈕,系統會對用戶輸入的信息進行校驗,具體校驗項包括:用戶是否被注冊、密碼是否匹配、身份是否正確…
在這里插入圖片描述

3.普通用戶身份權限

普通用戶身份登錄成功后到軟件主界面,可以進行如下操作:

  1. 用戶系統操作:退出登錄、退出系統
  2. 對現有的網址進行查看,包括網址審核狀態、網址條目
  3. 刪除目標網址 即取消網址審核狀態提交,用戶通過在表格中多選url的方式對目標網址進行刪除操作
  4. 上傳新網址,顧名思義,用戶可以選擇指定類型的本地文件來進行網址的審核提交

我們的系統支持三種類型的文件:TXT、CSV、Excel
文件內容格式見下圖(CSV):
在這里插入圖片描述
請添加圖片描述

在這里插入圖片描述

4.管理員身份權限

管理員擁有本系統的最高身份權限,但是不支持網址上傳操作,因為不能自己審核自己,管理員的權限主要是:

  1. 用戶管理:鳥瞰整個用戶數據表格數據,查看所有用戶的身份、網址數據量
  2. 網址審核:對于用戶提交的網址內容進行審核,可以直接標記目標網址的狀態:通過、不通過,支持網址的刪除操作
  3. 登錄日志管理:查看所有用戶的登錄日志信息,包括的數據項為:用戶ID、用戶名、身份、登錄時間、IP地址

這里截圖一張,展示一下系統核心功能:
在這里插入圖片描述

三、技術討論

1.數據展示表格

本次數據的展示并沒有使用傳統的PyQt5的QTableWidget二維數據表,而是使用了QWebEngine封裝的datatables,這樣做的好處有很多:

1. 更強的表現力和交互性(前端功能豐富)
  • DataTables 支持列排序、分頁、搜索、篩選、高亮顯示等功能,開箱即用。
  • 可以輕松實現列寬自適應、列固定、合并單元格、行內編輯等復雜操作。
  • 插件生態豐富,如按鈕導出(CSV、Excel)、打印、列拖動等插件。
2. 數據處理效率更高(支持大數據量)
  • QTableWidget 在處理上千行數據時容易變卡,性能差。
  • DataTables 使用虛擬 DOM 和分頁顯示,渲染效率明顯更高,尤其適合上萬行數據展示
3. 美觀且易于自定義(前端 UI 更現代)
  • 可以使用 HTML/CSS/Bootstrap 等前端技術美化表格外觀。
  • 支持響應式設計,自適應不同窗口大小。
4. 功能擴展性強
  • 可以嵌入圖表(如 Chart.js)、鏈接、按鈕、下拉菜單等組件。
  • 可以和后端數據動態交互(AJAX 數據源),比如結合 Flask、FastAPI 實時刷新數據。
5. 跨平臺一致性更好
  • 基于 Web 技術,在 Windows、Linux、macOS 下表現幾乎完全一致。
  • 可拓展為 Web 應用的一部分,統一 UI 和邏輯。

2.數據表

這里說的是SQLite3的數據表,我們的系統是基于SQLite3的,里面包括三張數據表,分別是:

用戶信息表

CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT,username TEXT NOT NULL UNIQUE,password TEXT NOT NULL,role INTEGER NOT NULL CHECK (role IN (1, 2))
);

用戶日志表

CREATE TABLE IF NOT EXISTS user_login_logs (id INTEGER PRIMARY KEY AUTOINCREMENT,user_id INTEGER NOT NULL,  -- 用戶 IDlogin_time TEXT NOT NULL,  -- 登錄時間ip_address TEXT           -- 登錄的 IP 地址
);

用戶url審核表

CREATE TABLE IF NOT EXISTS user_urls (id INTEGER PRIMARY KEY AUTOINCREMENT,user_id INTEGER NOT NULL,url TEXT NOT NULL,icon_base64 TEXT,`desc` TEXT,`title` TEXT,upload_time INTEGER,status INTEGER default 0,--- 0未審核 1審核通過 2審核未通過UNIQUE(user_id, url)
);

下圖為用戶url審核表截圖內容:
在這里插入圖片描述

四.總結

本次和大家詳細分享了我為粉絲定制化開發的“PyQt5+SQLite3的網址審核系統”,此系統非常適合用來作為數據庫大作業或者PyQt5項目練習,系統整體實現不難,主要是得有整體架構開發思路,整體代碼量約為1700行,主要是PyQt5組件定義花了一些時間,因為本系統不依賴設計師,所有組件都是自定義出來的。最后感謝大家看到這里,如果您也有需求的話歡迎點擊下方聯系我!
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87191.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87191.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87191.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

與后端現場聯調mock數據

當我們后端在現場沒辦法連后端本地就可以使用mock數據,模擬后端返回數據。使用工具:apifox 一、安裝好以后--新建接口 舉個栗子: 我想建個接口http://123.123.123.123:8080/api/login 二、 新建期望,返回固定值,否則…

C# 事件(發布者和訂閱者)

發布者和訂閱者 很多程序都有一個共同的需求,即當一個特定的程序事件發生時,程序的其他部分可以得到 該事件已經發生的通知。 發布者/訂閱者模式(publisher/subscriber pattem)可以滿足這種需求。在這種模式中,發布 …

RediSearch高性能全文搜索引擎

RediSearch 是 RedisLabs 團隊開發的一個高性能全文搜索引擎,可作為一個 Redis Module 運行在 Redis 上。 Redis7:百萬數據級Redis Search 超越 ElasticSearch Redis Search是基于Redis的全文搜索引擎模塊(RediSearch)&#xff0c…

菜譜大全——字符串處理藝術:從文本解析到高效搜索 [特殊字符][特殊字符]

目錄 前言一、現實場景二、技術映射2.1 基礎刀工:String類2.2 高效剁餡:StringBuilder2.3 精準雕刻:正則表達式 三、知識點呈現3.1 String vs StringBuilder vs StringBuffer3.2 正則表達式核心語法速查3.3 字符串拼接性能陷阱 四、代碼實現五…

webpack+vite前端構建工具 -答疑

webpack答疑 1 輸入webpack命令,執行的是全局版本還是本地版本的webpack 當在命令行窗口輸入webpack命令時,其執行優先級可通過以下步驟明確判斷: 1.1 【全局安裝優先機制】 執行原理:系統會按照環境變量PATH的順序逐級查找可執…

API接口開放平臺 Crabc 3.4 發布

Crabc 是一款 API 接口開發平臺,企業級接口管理、SQL2API 平臺。支持動態數據源、動態 SQL 和標簽, 支持接入(mysql、oracle、達夢、TiDB、hive、es 和 mongodb)等 SQL 或 NoSQL 數據源,在線可視化編寫 SQL 快速發布接…

PD快充協議芯片XSP04D支持全協議+支持串口通訊+支持與主板共用一個Type-C

隨著Type-C接口的充電器普及,市面上的PD充電器越來越多,小家電產品可不配充電器,使用Type-C接口,然后加入一顆PD協議取電協議芯片XSP08即可讓充電器/充電寶/車充等電源輸出9V/12V/15V/20V電壓給產品供電。 針對各種各樣的不同需求…

C# 高效加載txt文件內容

在 C# 中,高效加載 TXT 文件內容可以通過多種方法實現,具體方法的選擇取決于文件的大小和讀取需求。以下是一些常用的方法: 1. 使用 File.ReadAllText 如果文件比較小,并且你希望一行一行地讀取整個內容,可以使用 Fi…

(2)pytest執行用例的規則

1. 簡介 今天主要學習一下pytest的執行用例的規則。 2. 通過help幫助查看pytest如何使用 .查看pytest命令行參數,可以用pytest -h 或pytest --help查看 3. 用例設計原則 文件名以test_*.py文件和*_test.py以test_開頭的函數以Test開頭的類以test_開頭的方法所有的…

InnoDB數據頁

導讀: 我們已經知道了頁是數據庫存儲的基本單位,知道了一條行記錄的存儲格式是怎樣的,當數據越來越多時,那一條條行記錄具體又是怎么在頁中被組織起來的呢? 一、InnoDB數據頁結構 二、總結 1、一條條行數據是如何在數…

世賽背景下,中職物聯網應用與服務賽項實訓解決方案

一、世賽背景與物聯網應用賽項概述 1.1 世賽發展歷程及對中職教育的影響 世界技能大賽(WorldSkills Competition,簡稱世賽)自1950年創立以來,已經成為全球范圍內展示職業技能水平的重要賽事。截至2024年,世賽已成功舉…

【攻防篇】解決:阿里云docker 容器中自動啟動xmrig挖礦-- 實戰

文章目錄 場景一、問題二、原因三、解決方案1、控制臺處理2、 [清除與防護](https://blog.csdn.net/ladymorgana/article/details/148921668?spm1001.2014.3001.5501)1. 緊急處理:停止挖礦進程2. 清理被感染的容器3. 防護措施:防止再次被入侵4. 排查入侵…

飛算智造JavaAI:智能編程革命——AI重構Java開發新范式

文章目錄 引言:當傳統Java開發遇上AI一、技術架構解析1.1 核心架構圖1.2 關鍵技術棧 二、實戰演示:從需求到代碼的全AI輔助2.1 場景:電商優惠券系統開發2.2 代碼生成實例2.3 智能調試演示 三、與傳統開發模式對比測試3.1 基準測試數據3.2 典型…

[特殊字符] 分享裂變新姿勢:用 UniApp + Vue3 玩轉小程序頁面分享跳轉!

在如今流量成本日益攀升的移動互聯網時代,"用戶分享拉新" 成為了增長的重要策略。而微信小程序作為天然具備社交傳播力的平臺,提供了較完善的分享機制支持。本文將從實戰角度出發,手把手教你如何使用 uni-app Vue3 構建一個支持「…

[創業之路-458]:企業經營層 - 藍海戰略 - 重構價值曲線、整合產業要素、創造新需求

“重構價值曲線、整合產業要素、創造新需求”是藍海戰略中實現價值創新的核心路徑,它們構成了一個從內部優化到外部協同,再到市場顛覆的完整邏輯鏈條。以下從理論框架、實踐方法和企業案例三個維度展開分析: 一、重構價值曲線:打…

慢查詢引發對mysql索引的探索

目錄 一、索引分類 1.1 聚簇索引結構 1.2 非聚簇索引(二級索引) 1.3 主鍵索引 1.4 唯一索引 1.5 普通索引 1.6 前綴索引 1.7 聯合索引 1.8 索引下推 1.9 索引區分度 二、優化索引的方法 2.1 索引的特點 2.2 適合創建索引的情況 2.3 不適合創建索引的情況 2.4 優…

啟用不安全的HTTP方法

背景: 今天被安全檢測出一個這樣的問題:啟用不安全的HTTP方法。DELETE方法是用來調試web服務器連接的http方式,支持該方式的服務器文件可能被非法刪除;PUT方法用來向服務器提交文件;TRACE方法本用于客戶端測試到服務器…

fvcom 水深文件dep制作

fvcom 水深文件dep制作 fvcom 水深文件dep制作20250630 本次案例網格和水深展示 vv image Figure 1 Model domain 本次制作其它驅動文件的輸入文件為yellowsea.2dm 格式2dm; 文件內容格式詳細介紹參考: https://www.xmswiki.com/wiki/SMS:2D_Mesh_Files_*.2dm …

ViewModel是EventFlow-State映射

ViewModel負責組裝界面狀態State。引發State變換的原因有很多,比如用戶點擊某個按鈕,一次網絡請求受到應答,一次本地數據庫查詢返回結果等等。因此ViewModel是根據各種事件生成State的對象,換句話說,是一個從多個事件流…

javaweb Day2

PreparedStatement作用: 預編譯SQL語句并執行: 預防SQL注入問題 SQL注入:SQL注入是通過操作輸入來修改事先定義好的SQL語句,用以達到執行代碼對服務器進行攻擊的方法。