Django建立查詢表單
以網路管理為範例,一個區網內有許多設備,每個設備設定固定IP,想要找出每個設備連接的網路設備與網路設備的連接埠,需要事先連線到交換器(Switch)查詢MAC所對應的交換器連接埠,例如:MAC(01:02:03:04:05:06)連結Switch(代號為lib-4F-1)的port2,此時就可以建立一個資料表儲存MAC、Switch代號與連接埠,如下表。
MAC
01:02:03:04:05:06
Switch
lib-4F-1
Port
2
在Linux或FreeBSD使用指令「arp-scan」(參考此文章) ,掃描區域網路內所有IP、MAC、機器型號等對應,如下表。
IP
192.168.1.1
MAC
01:02:03:04:05:06
Com
ASUS
事先將這些資料插入Mysql資料庫,並使用Django連線Mysql資料庫(參考此文章),使用Django建立查詢兩張資料表,使用MAC連結兩張資料表,找出區往IP、MAC、交換器(Switch)、交換器連接埠(Port)與機器型號(Com)。
假設所有功能都在命名為my的APP下,專案名稱為net。
Step0)在my/models.py建立與Mysql資料表的對應資料表,在使用Django連線Mysql資料庫就會建立以下程式碼才能對應。
Step1)在my/models.py新增查詢的SQL程式碼,可以查詢203開頭的IP
Step2)本專案為net,在net\urls.py新增以下程式碼,vlan203定義在my\views.py下。
在my\views.py下,新增vlan203函式,讓http://127.0.0.1/vlan203/呼叫此函式。
Step3)在net\setting.py設定templates所在資料夾,在BASE_DIR / 'templates'下。
新增templates\vlan203.html如下。
Step4)使用瀏覽器瀏覽http://127.0.0.1/vlan203/就可以看到所有IP、MAC、交換器(Switch)、交換器連接埠(Port)與機器型號(Com)的對照表。