牛鶴寧,胡楠
(中國電子信息產(chǎn)業(yè)集團有限公司第六研究所,北京 102209)
Django是用Python語言編寫的一個快速Web 開發(fā)框架,結合輕量級數(shù)據(jù)庫應用 SQLite。Django 利用對象關系映射( Object Relational Mapping,ORM) 機制定義和操縱數(shù)據(jù)庫,使開發(fā)者可以構建出獨立于具體數(shù)據(jù)庫引擎的 Web 應用。Django 內置了后臺管理模塊,利用它可以方便地管理 Web 應用。而且Django 內置了一個輕量級的 Web Server,開發(fā)者無需安裝任何 WebServer 就可以進行各種 Web 應用的開發(fā)和測試,比較適宜快速的Web 應用開發(fā)[1]。此外,Django有許多功能強大的第三方插件,具有很強的可擴展性,本系統(tǒng)就用到了很多插件。
系統(tǒng)主要功能分為如下幾個部分:
(1)文檔生成
項目組提交產(chǎn)品檢驗時,需提交檢驗申請單和檢驗大綱;這兩項將作為檢驗中的檢驗依據(jù),并且編寫檢驗記錄和檢驗報告時需讀取申請單和檢驗大綱中的有用信息,如申請單中需提取“工程令號”、“項目名稱”、“產(chǎn)品名稱”、“大綱編號”等;檢驗大綱中提取“檢驗項”、“檢驗方法”、“預期結果”、“指標要求”等。因此,需要在系統(tǒng)中導入申請單和檢驗大綱。并根據(jù)檢驗記錄和檢驗報告的模板生成檢驗記錄和檢驗報告,并輸出[2]。
(2)條件查詢與數(shù)據(jù)庫寫入
申請單和大綱導入后,提取有效字段,進行數(shù)據(jù)庫寫入操作。并可以根據(jù)條件查詢數(shù)據(jù)庫并顯示在界面。
(3)臺賬管理
根據(jù)工程令號,產(chǎn)品名稱,檢驗人員進行組合查詢,提供分頁功能,輸出檢驗臺賬。
Django采用的是MTV設計模式,即模型Model用于處理數(shù)據(jù)層的業(yè)務邏輯、模板Template存放的是HTML用于處理表現(xiàn)層的業(yè)務邏輯、視圖View用于處理邏輯層的業(yè)務邏輯。系統(tǒng)體系結構關系圖如圖1所示。
圖1 產(chǎn)品檢驗文檔處理系統(tǒng)體系結構關系圖
根據(jù)功能需求分析,系統(tǒng)分為三個模塊,即文檔生成模塊,條件查詢與數(shù)據(jù)庫寫入模塊,臺賬管理模塊,如圖2所示。
圖2 產(chǎn)品檢驗文檔處理系統(tǒng)功能模塊圖
本項目采用pycharm編碼工具編碼,開發(fā)流程如下:
(1)創(chuàng)建Django工程
(2)創(chuàng)建應用dapru
每個Django項目中可以包含多個APP,相當于一個大型項目的分系統(tǒng),功能模塊等,相互之間比較獨立。
在終端輸入命令:Python manage.py startapp dapru。
(3)修改setting.py文件
修改數(shù)據(jù)庫字段:
改成項目中使用的數(shù)據(jù)庫,本項目數(shù)據(jù)庫使用的是SQLite與默認相符,未做修改。
(4)編寫路由
路由信息保存在urls.py文件里面,項目名字下的為總路由,所有的url都先發(fā)到這里,在分發(fā)給對應的子路由,也就是每個應用的路由。
在fileImEx下的urls.py為總路由,輸入語句:url(r'^', clude('dapru.urls')),分發(fā)給dapru。
(5)創(chuàng)建數(shù)據(jù)庫
第一,在setting.py文件中注冊app:
第二,編寫model.py文件。
第三,在pycharm的終端中通過命令來創(chuàng)建數(shù)據(jù)庫的表:
Python manage.py makemigrations
Python manage.py migrate
(6)業(yè)務邏輯
在view.py中創(chuàng)建函數(shù),與路由中的信息一致。并且給瀏覽器返回數(shù)據(jù)
(7)創(chuàng)建html
Django采用jinja2作為HTML頁面的引擎來顯示后臺給瀏覽器返回的數(shù)據(jù),它是一種特殊的語言,有自己的語法。
3.2.1 文檔生成界面
用戶通過對有效字段的輸入,以及檢驗申請單和檢驗大綱的導入來完成檢驗記錄和檢驗報告的自動生成,并寫入數(shù)據(jù)庫。全程一鍵式操作。
3.2.2 臺賬查詢功能
用戶通過瀏覽器進行數(shù)據(jù)庫的查詢操作,并通過 Web頁面進行可視化展示。Web 頁面通過圖表的形式展現(xiàn),讓數(shù)據(jù)以最直觀的方式呈現(xiàn)出來[3]。
為了提高數(shù)據(jù)查詢的靈活性,數(shù)據(jù)查詢的關鍵詞包含工程令號,產(chǎn)品名稱,檢驗人員,用戶可自由選擇組合關鍵詞進行查詢[4]。
一般在部署Django項目時,大多基于Nginx+uWsgi 組合方式進行部署,本項目使用自帶數(shù)據(jù)庫SQLite。這種部署方式的原理是:客戶端請求Nginx服務器,Nginx服務器將請求轉到uWsgi服務器,最后運行Django框架的代碼。Nginx的強項在于處理靜態(tài)文件,所有的靜態(tài)文件轉給Nginx處理,相關的請求不會轉給uWsgi,這種部署方式能夠實現(xiàn)優(yōu)勢互補,提高服務器的性能[5]。
該項目是基于 PyCharm 自主研發(fā)的 Django 應用項目,所有工作均獨立完成,最終構建了一個高效的產(chǎn)品檢驗文檔處理系統(tǒng)。通過產(chǎn)品檢驗文檔處理系統(tǒng),可以高效地完成檢驗記錄和檢驗報告的編寫工作,能夠提高工作效率,把更多的精力投入到檢驗本身。同時可以將各個項目的檢驗情況自動生成檢驗臺賬,使得檢驗臺賬更加清晰明了。