1. 程式人生 > >我的第一個python web開發框架(1)

我的第一個python web開發框架(1)

1:資料庫結構設計與建立

小白做好前端html設計後,馬上開始進入資料庫結構設計步驟。

  

  在開始之前,小白回憶了一下老大在公司裡培訓時講過的資料庫設計解說:

  對於初學者來說,很多拿到原型時不知道怎麼設計資料表結構,這是很正常的事,可以通過借鑑別人的專案總結經驗,慢慢就會了。

  拿到原型後,我們要認真觀察原型裡顯示的內容有那些,考慮一下這些內容中那些是不變的,即寫死在頁面中的,那些是需要後臺更改變動的,將這些變動的記錄下來,新增到資料字典中。在記錄這些欄位時,還要做的事就是分類,一個類別就是一個數據表。(當然如果初學者很牛的話,那你也可以像一些架構師大神那樣,不用原型直接開啟設計工具繪製表結構關係圖也沒有任何問題)

  然後我們再根據業務流程與業務需求,對欄位進行增減優化。

  最後再根據目標業務量,與一些非功能的質量屬性要求,來優化表結構。做完這一步,資料表結構設計就八九不離十了。

  當然在設計時,我們要注意的是表結構的可擴充套件性,也就是說某些欄位會不會存在一對多的情況,如果你設計成一對一的話,那有可能後續要升級功能時就會遇到很多障礙了。

  另外,我們也要立足當前,不能為了將來有可能的事情去增加一大堆冗餘欄位,到最後可能多了好多沒有用過的欄位存在。對於python來說,它不需要去生成一大堆實體類,所以我們在後續根據需要新增各種欄位也是非常方便的,建議絕要用到時再新增對應的欄位。

 

  一、表結構設計

  首先我們開啟有公司介紹的頁面

  

  

  可以看到公司介紹裡面顯示的是圖片和文字資訊,它屬於資訊編輯型別,而聯絡我們也是一樣的,所以可以把它們放到一個資訊表中統一管理,根據原型我們可以看到首頁和公司介紹頁面展示的圖片大小是不一樣的,所以需要增加一個封面圖片地址欄位,用來存放首頁顯示的圖片地址,而公司介紹頁的圖片與內容文字可以一起儲存到內容欄位中(首頁展示內容時,可以使用程式碼過濾掉內容中的圖片),所以這裡需要兩個欄位來儲存對應的內容。另外,為了方便後臺管理員區分這是什麼內容的記錄,所以再增加一個標題欄位來進行說明,不用做前端展示用。

  前面的分析,小白使用老大給的資料字典excel模板,設計對應的資料表結構(使用的是postgresql資料庫,見下圖)

  

  PS:主鍵幾乎每個資料表都是必須的,一般使用自增型別的整形數值,對於資料量比較大的分散式資料結構,多數會用uuid做為主鍵id;另外對於資訊表,還會增加一個額外的add_time來儲存這條記錄新增的時間

 

  開啟產品中心與產品詳情頁面

  

  

  從原型的產品中心頁面,我們可以看到左欄有產品分類列表,右欄是產品詳細內容,所以我們需要分兩個表來進行儲存,並將它們關聯起來。產品分類表用來儲存分類資訊(需要有分類名稱欄位),用於管理前端分類列表的展示,可以增加是否啟用欄位,方便新增或下架某個系列產品時,批量上線或下線操作用的(顯示或隱藏該分類)。

  而產品資訊表則可以根據產品詳情頁面所展示的內容欄位來進行新增(從產品詳情頁面上可以看到,需要產品名稱、編碼、規格、保質期、產地與產品描述欄位)。除了頁面展示內容外,我們還需要增加產品分類id欄位,用來繫結產品分類表,用於點選產品分類時,後臺根據這個分類id來查詢出對應的產品。另外增加封面圖片地址欄位,用於顯示產品列表時,展示對應的圖片。最後是否啟用欄位也是為了顯示和隱藏產品用的。

  

 

  除了以上內容外,我們還需要增加一個管理員管理表,用來管理後臺登入使用者用的,由於這個企業站太小了,所以小菜鳥偷懶不做這個管理頁面,哈哈...後面的故事慢慢展開後會逐漸完善系統功能

  

 

  二、資料表SQL程式碼生成

  執行下載包中的ExcelToPostgreSql.exe(這是用C#開發的,需要Framework 3.5才能執行),選擇下載包中的資料字典,然後填入Excel表名稱Sheet1,點選執行就可以看到生成好的Sql執行程式碼了(如果用WPS打開了資料字典,點執行可能會無反應,是因為WPS獨佔了excel檔案,需要關閉後才會正常執行)

  

  PS:由於這個軟體是隨手寫出來的,所以不是很完善,必須遵循下面一些要求才行

  第一行列的中文說明不能刪除,不然執行時會出錯;表與表之間要空一行;主鍵列支援PK(建立主鍵)、IX(生成索引)與UX(建立唯一索引)三種,如果想要建立複合索引,只能手動新增;允許空列,只需要新增no就會新增非空限制;預設值列,預設時間型別欄位為null值,如果想要設定為now(),即生成當前時間,則需要將允許空列設定為no就可以了,因為now可能是excel的關鍵字,這個預設值程式讀不出來;另外,text型別欄位預設值為'',即生成時會自動新增。

 

  三、建立資料庫與資料表

  開啟pgAdmin連線本地postgresql資料庫

  點選

  在彈出視窗中,輸入資料庫名稱:simple_db,點選確定,完成資料庫建立。

  

  

  然後點選剛建立好的資料庫後,再點選標題欄的sql查詢分析器

  

 

  在彈出來的sql編輯器視窗中貼上前面生成好的sql語句進來,然後點選執行查詢,資料表就建立好了

  

  接著清空sql編輯器裡的程式碼,輸入下面語句,點選執行建立後臺管理員賬號,方便後面開發操作

INSERT INTO manager(login_name, login_password, is_enable) VALUES ('admin', 'E10ADC3949BA59ABBE56E057F20F883E', 1);

  到這裡就完成了資料庫的相關設計與建立工作了,點選下面連結下載相關檔案

 

 

&n