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)的對照表。