999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Django的用戶信息管理系統

2021-04-13 08:46:36余斌
電腦知識與技術 2021年5期
關鍵詞:數據庫

余斌

摘要:用戶信息管理是一項重要而基礎的工作。為提高信息管理效率與標準,運用網絡應用開發框架Django開發用戶信息管理系統。該管理系統實現了操作員管理,用戶信息管理與校對等功能,并結合具體需求就如何拓展Django ORM API進行探討。

關鍵詞:信息管理;數據庫;Django關系代數;查詢

1引言

隨著計算機與互聯網技術不斷發展,人們對信息生成、存儲、處置方式也在逐步演化。信息管理方式從過去客戶端/服務器模式轉向瀏覽器/服務器模式。運行于服務器端的腳本語言,如Perl,PHP等隨即興起。網絡應用開發初期,腳本語言業務邏輯與表示邏輯交織,網絡應用程序可維護性較差。為了方便應用開發,將網絡應用程序中常用功能模塊進行抽取組合,構建網絡開發框架。網絡開發框架按照MVC模式,將數據邏輯、業務邏輯、表示邏輯解耦,明晰了開發流程,規范了開發模式,提高了開發效率。網絡開發框架出現解決了網絡應用開發的困境。

Python是一種面向對象、解釋執行、通用腳本語言,它具有語法結構簡單,開發過程規范,內置標準庫完善,第三方類庫豐富等優點。它在網絡爬取、WEB開發、圖像處理、數值計算、機器學習、自然語言處理等方面都有許多優秀開源項目。Django是一種基于Python的網絡開發框架。Django一方面為開發人員提供了用戶管理,表單處理,數據庫建模,模板渲染,數據過濾,防跨站攻擊等功能,另一方面也允許開發人員能夠對內置模塊根據需求進行拓展。

Django采用了MTV模式,即Model-Template-View。Django將業務邏輯、表示邏輯以及數據庫定義三者在應用開發過程中完全分離。在Models.py模塊中用ORM定義數據庫結構并實現對數據庫操作封裝,在Views.py模塊中實現業務邏輯,完成對數據的操作,包括增加、修改、刪除、查詢等操作以及其他需要實現的功能,操作結果作為參數傳遞給Templates中對應的表示邏輯模塊,即通過模板渲染出對應頁面并通過瀏覽器展示給用戶。

Django開發網絡應用程序以項目為組織結構,功能不同的應用模塊組合構成一個項目。一個基本Django網絡應用程序的結構如圖1所示。

2系統數據建模

2.1需求分析

用戶信息管理系統主要目標是對部門用戶信息按特定要求進行有效管理。部門由兩個小組分別維護同一組用戶不同類別信息,每個小組各自維護本小組所采集用戶信息與變化情況,并在一定周期內校驗用戶基礎信息,確保信息同步。如果某個小組所維護數據不在另一小組數據中,即出現了新增用戶信息,則將此數據加入另一小組數據庫中。如果兩個小組存在著相似數據,但關鍵信息不一致,則提醒雙方核實該項數據,最后分別更新到各自數據庫中。立足數據需求與業務特點,將該系統分成五大模塊:操作員與權限管理,增加用戶信息,查找用戶信息,核對用戶信息與用戶信息匯總。

2.2數據建模

結合上述功能需求,用戶信息管理系統需建立6個數據表:CKUser,CJUser,Phone,Operation,Operator,Rank,其中CKUser,CJUser用于存儲兩個工作小組各自用戶信息,Phone用于存儲所有用戶電話號碼,Operation保存用戶信息新增更改刪除等操作記錄信息,Operator分別存儲兩個小組人員信息,Rank用于存儲各個人員權限級別。各個數據表的表結構信息以及數據表之間的關系如圖2所示。Django內建支持多種數據庫。基于本信息管理系統開發需求,選擇文件型數據庫SQLite作為數據存儲。

3開發

Django采用ORM模式在models.py模塊中創建相應代碼,即可通過命令行在數據庫中建立對應數據表。如建立CKUser表,我們只需創建CKUser類。CKUser類繼承自父類models.Model,類中每個屬性都是數據表列名,列的屬性由models屬性擴展而得到,models支持的數據類型包括字符型,整型,布爾型,時間型,文本型以及外鍵等。在創建好對象實體后,還可在models.py中實現常用數據庫數據操作,將數據庫操作代碼都統一管理,并在views.py中導入使用。

網絡應用程序通過表單從瀏覽器端獲取數據。Django可以通過兩種方式創建表單。一是通過 forms.ModelForm,設置該表單所對應數據模型,即可按照數據模型創建特定表單;一是用戶結合具體需求定制所需表單。建立表單后,我們就可以在views模塊中引用表單來與用戶進行數據交換。表單在接受用戶輸入數據時,應對數據格式進行有效性與合法性驗證,一方面避免數據類型錯誤引發程序出錯,另一方面防止惡意用戶利用表單操作對數據庫進行SQL注入攻擊,以提高系統安全性。

3.1數據管理

Django通過ORM封裝了對數據庫各種操作,業務邏輯層通過調用同一組API可以完成對不同數據庫的各種操作。對于數據庫進行基本新增,查找,更新,刪除可以通過API實現。

通過創建一個對象即可生成一條記錄,或者通過get_or_create(),先去查詢數據庫是否存在相同數據,若未找到則生成該數據。如增加操作員,通過add_operator方法用新建操作員的表單中的數據Operator.objects.create方法就生成了Operator表中的一條新數據。

通過get,filter,all等API可以通過不同過濾條件來查找數據庫記錄。例如,通過user = cjUser.objects.get(phone=phone)可以獲得CJUser表中與需查詢號碼一致的用戶。通過save,update可以更新所選擇記錄信息,通過delete可以刪除所選擇記錄。

3.2信息校驗

為保證系統安全性,必須完成操作員權限管理與操作控制,確保未登錄則無法顯示或者只能顯示而無法更新信息。登錄后A組只能顯示更改A組的信息,B組只能顯示更改B組的信息。可以用Django內部裝飾器@login_require來實現。裝飾器是一種語法糖結構。它在不改變函數原有功能前提下,可以為函數增加新功能與要求。例如裝飾器@login_require就可以滿足用戶在登錄之后才能運行index函數對應網絡請求。

用戶登錄之后方可進行信息校驗。我們以用戶姓名與電話號碼來判斷兩個小組信息是否同步。可以將數據差別情況分為以下幾種情況。在A表中存在,但在B表中不存在即用戶屬于集合(A-A[?]B),反之在B表中存在,但在A表中不存在用戶屬于集合(B-A[?]B)。如果在A表B表中都存在,且信息一致則不用處理。如果號碼相同,查看兩者名字是否類似或者音近或是形近字。如果用戶名字接近,電話號碼不同但也比較接近,可提醒工作人員進行人工甄別是否輸入不準確所致。

在進行兩表差異查詢時,Django內置ORM數據庫操作無對應API,故需采用原生SQL命令來實現此類比較需求。Django網絡應用程序支持兩種方式在運行期間執行原生SQL命令序列。第一種使用cursor.execute(),返回一個查詢對象實例,若要獲取查詢結果還要執行查詢對象的方法fetchall()。第二種somemodel.objects.raw(),也返回一個查詢對象實例,也可直接返回查詢結果,只需在select 子語句中加上主鍵鍵值,如phone_user.id。實現代碼如下:

3.3應用發布

Django既有內置開發HTTP服務器,也可以通過配置適配符合WSGI標準WEB服務器,如FastCGI,Ngnix等。內置開發服務器性能較弱,通常用于開發測試環境,在生成環境中應選用第三方WEB服務器以提高服務性能。

4結論

Django是一種成熟的網絡應用開發框架,適合從小型到大規模網絡應用開發。本用戶信息管理系統能夠較直觀地核對用戶信息,提高工作效率,減少了人為校驗差錯發生,取得較好實際應用效果。信息管理系統根據時間戳詳細記錄用戶操作記錄與內容,為信息維護職責區分提供數據支持,也為進一步分析用戶信息提供了數據保障。下一步工作方向,優化在數據量較大時對兩表中差異數據的校驗算法與查詢效率;增加數據導入導出功能;定期自動執行核對任務并提醒工作人員差異數據。

參考文獻:

[1] Mark Lutz.Learning.Python [M]. 侯靖,譯.3版.北京:機械工業出版社,2009.

[2] Harry Percival. Python.WEB開發:測試驅動方法[M].安道,譯.北京:人民郵電出版社,2015.

[3] Bennett J.Practical django projects[M].Berkeley,CA:Apress,2009.

[4] Grant Allen,Mike Owens.SQLite權威指南 [M].楊謙,譯.2版.北京:電子工業出版社,2012.

【通聯編輯:光文玲】

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 色婷婷在线影院| 欧美精品在线视频观看| 国内精品手机在线观看视频| 在线观看免费黄色网址| 国模私拍一区二区| 伊人狠狠丁香婷婷综合色| 国产成人免费| 国产高清色视频免费看的网址| 幺女国产一级毛片| www亚洲精品| 亚洲乱强伦| 国产成人精品高清不卡在线| 欧美在线视频不卡第一页| 国产精品成人免费综合| 中国一级特黄大片在线观看| 国产va欧美va在线观看| 日韩AV无码一区| 欧洲欧美人成免费全部视频| 亚洲人成网站观看在线观看| 国产在线精彩视频论坛| 在线精品亚洲一区二区古装| 成人在线不卡视频| 一级片免费网站| av尤物免费在线观看| 国产激情第一页| 91精品专区国产盗摄| 国产精品成人久久| 91久久偷偷做嫩草影院免费看| 国产欧美日韩视频一区二区三区| 69国产精品视频免费| 老司机精品99在线播放| 色综合五月婷婷| 国产白浆在线| 超清无码一区二区三区| 亚洲国产成人精品青青草原| 青青久久91| 日韩欧美亚洲国产成人综合| 网友自拍视频精品区| 久久中文字幕不卡一二区| 99热这里只有精品免费| 亚洲国产日韩一区| 被公侵犯人妻少妇一区二区三区| 婷婷色一二三区波多野衣| 99视频全部免费| 成人毛片在线播放| 午夜老司机永久免费看片| 欧美国产在线精品17p| 国产免费精彩视频| 国产乱论视频| 亚洲精品少妇熟女| 亚洲成aⅴ人在线观看| 亚洲精品免费网站| 国产在线精品99一区不卡| 欧美区一区| 伊人色在线视频| 2021精品国产自在现线看| 欧美精品综合视频一区二区| 亚洲欧洲日韩久久狠狠爱| 午夜精品一区二区蜜桃| 又大又硬又爽免费视频| 国产精品入口麻豆| 伊人成人在线视频| 在线观看视频99| 三上悠亚精品二区在线观看| 色欲国产一区二区日韩欧美| 国产精品无码AV片在线观看播放| 91av成人日本不卡三区| 九九热免费在线视频| 一级黄色网站在线免费看| 日韩欧美中文字幕一本| 欧美国产日韩一区二区三区精品影视| 亚洲av无码专区久久蜜芽| 波多野结衣一区二区三视频| 免费亚洲成人| 久热这里只有精品6| 99国产在线视频| 91精品专区| 午夜性爽视频男人的天堂| 2021国产精品自产拍在线观看| 国产成人精品高清不卡在线| 99视频国产精品| 亚洲精品欧美日韩在线|