項(xiàng)目使用技術(shù)基于Python語言,版本:>=3.5及以上。 使用Django框架,版本:1.11.11的LTS版本。 MySQL數(shù)據(jù)庫 連接數(shù)據(jù)庫:pymysql=0.8.0 圖像處理: Pillow=5.0.0 Web前端技術(shù):HTML、CSS、JavaScript和Jquery等
項(xiàng)目的目錄結(jié)構(gòu)本次項(xiàng)目共計(jì)四個(gè)應(yīng)用:myadmin、web、common和ueditor /d_shop/
├── manage.py
├── d_shop
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── common 公共應(yīng)用
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── shopmiddleware.py 自定義的中間件
│ ├── migrations
│ ├── models.py 網(wǎng)站前后臺的共用Model類
│ ├── tests.py
│ └── views.py
├── myadmin 網(wǎng)站后臺應(yīng)用
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ ├── views
│ │ ├── index.py 后臺主視圖
│ │ ├── users.py 會員管理視圖
│ │ ├── type.py 商品類別管理視圖
│ │ ├── goods.py 商品管理視圖
│ │ └── orders.py 訂單管理視圖
│ ├── models.py
│ ├── tests.py
│ └── urls.py
│
├── web 網(wǎng)站前臺應(yīng)用
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ ├── views
│ │ ├── index.py web前臺主視圖
│ │ ├── users.py 會員操作視圖
│ │ ├── cart.py 購物車管理視圖
│ │ └── orders.py 訂單處理視圖
│ ├── models.py
│ ├── tests.py
│ └── urls.py
│
├── ueditor 百度編輯器(富文本編輯器)
│ ├── __init__.py
│ ├── UE
│ ├── controller.py
│ ├── msyhdb.ttf
│ ├── ueconfig.json
│ └── urls.py
│
├── templates 模板目錄
│ ├── myadmin 后臺模板總目錄
│ │ ├── users/ 后臺會員管理
│ │ │ ├── index.html
│ │ │ ├── add.html
│ │ │ ├── edit.html
│ │ │ ├── repass.html
│ │ ├── type/ 后臺類別管理模板
│ │ │ ├── index.html
│ │ │ ├── add.html
│ │ │ ├── edit.html
│ │ ├── goods/ 商品信息管理模板
│ │ │ ├── index.html
│ │ │ ├── add.html
│ │ │ ├── edit.html
│ │ ├── orders/ 訂單信息管理模板
│ │ │ ├── index.html
│ │ │ ├── edit.html
│ │ ├── index.html
│ │ ├── login.html
│ │ ├── base.html
│ │ ├── info.html
│ │
│ ├── web 前臺模板目錄
│ │ ├── base.html
│ │ ├── index.html
│ │ ├── list.html
│ │ ├── detail.html
│ │ ├── login.html
│ │ ├── signup.html
│ │ └── ......
│
├── static 靜態(tài)資源目錄
│ ├── myadmin 后臺靜態(tài)資源
│ │ ├──....
│ │ ├──....
│ │
│ │
│ ├── web 網(wǎng)站前臺靜態(tài)資源
│ │ ├──....
│ │ ├──....
項(xiàng)目模塊結(jié)構(gòu)1 ) 網(wǎng)站后臺應(yīng)用的模塊操作說明 網(wǎng)站后臺模板采用github上提供的一個(gè)簡潔界面,網(wǎng)址:https://github.com/alecfan/mstp_17_akira 模塊 | 操作 | 權(quán)限 |
---|
登錄&退出管理 | 獲取登錄界面、處理登錄、退出、驗(yàn)證碼 | 無 | 后臺首頁 | 后臺首頁 | 網(wǎng)站編輯權(quán)限 | 后臺會員信息管理 | 瀏覽(搜索&分頁)、詳情、更改狀態(tài)、重置密碼 | 網(wǎng)站編輯權(quán)限 | 商品類別管理 | 瀏覽、獲取添加界面、執(zhí)行添加、獲取編輯界面、執(zhí)行修改、刪除 | 網(wǎng)站編輯權(quán)限 | 商品信息管理 | 瀏覽(搜索&分頁)、獲取添加界面、執(zhí)行添加、獲取編輯界面、執(zhí)行修改、刪除 | 網(wǎng)站編輯權(quán)限 | 訂單信息管理 | 瀏覽(搜索&分頁)、查看訂單詳情、處理訂單、刪除 | 網(wǎng)站編輯權(quán)限 |
2 ) 網(wǎng)站前臺應(yīng)用的模塊操作說明 模塊 | 操作 | 權(quán)限 |
---|
商品展示 | 商品首頁展示、列表頁(搜索分頁)、商品詳情頁 | 無 | 購物車管理 | 添加商品、查看購物車,修改、刪除、清空 | 無 | 前臺會員管理 | 注冊界面、執(zhí)行注冊,登錄界面,執(zhí)行登錄,驗(yàn)證碼、退出 | 無 | 訂單處理 | 訂單處理界面,確認(rèn)訂單界面、執(zhí)行訂單處理 | 會員權(quán)限 | 會員中心管理 | 個(gè)人信息界面、執(zhí)行個(gè)人信息修改,查看訂單,訂單詳情、處理訂單 | 會員權(quán)限 |
程序結(jié)構(gòu)項(xiàng)目中的編碼規(guī)范遵循良好的編碼風(fēng)格,可以有效的提高代碼的可讀性,降低出錯(cuò)幾率和維護(hù)難度。 在團(tuán)隊(duì)開發(fā)中,使用(盡量)統(tǒng)一的編碼風(fēng)格,還可以降低溝通成本。 網(wǎng)上有很多版本的編碼規(guī)范介紹,基本上都是遵循 PEP8 的規(guī)范:具體詳見:https://www./dev/peps/pep-0008/ 如下參考格式: 縮進(jìn)
* 不要使用 tab 縮進(jìn)
* 使用任何編輯器寫 Python,請把一個(gè) tab 展開為 4 個(gè)空格
* 絕對不要混用 tab 和空格,否則容易出現(xiàn) IndentationError
空格
* 在 list, dict, tuple, set, 參數(shù)列表的 , 后面加一個(gè)空格
* 在 dict 的 : 后面加一個(gè)空格
* 在注釋符號 # 后面加一個(gè)空格,但是 #!/usr/bin/python 的 # 后不能有空格
* 操作符兩端加一個(gè)空格,如 , -, *, /, |, &, =
* 接上一條,在參數(shù)列表里的 = 兩端不需要空格
* 括號((), {}, [])內(nèi)的兩端不需要空格
空行
* function 和 class 頂上兩個(gè)空行
* class 的 method 之間一個(gè)空行
* 函數(shù)內(nèi)邏輯無關(guān)的段落之間空一行,不要過度使用空行
* 不要把多個(gè)語句寫在一行,然后用 ; 隔開
* if/for/while 語句中,即使執(zhí)行語句只有一句,也要另起一行
換行
* 每一行代碼控制在 80 字符以內(nèi)
* 使用 \ 或 () 控制換行.
命名
* 使用有意義的,英文單詞或詞組,絕對不要使用漢語拼音
* package/module 名中不要出現(xiàn) -
import
* 所有 import 盡量放在文件開頭,在 docstring 下面,其他變量定義的上面
* 不要使用 from foo imort *
* import 需要分組,每組之間一個(gè)空行,每個(gè)分組內(nèi)的順序盡量采用字典序,分組順序是:
* 標(biāo)準(zhǔn)庫
* 第三方庫
* 本項(xiàng)目的 package 和 module
注釋
* 文檔字符串 docstring, 是 package, module, class, method, function 級別的注釋,可以通過 * __doc__ 成員訪問到,注釋內(nèi)容在一對 """ 符號之間
* function, method 的文檔字符串應(yīng)當(dāng)描述其功能、輸入?yún)?shù)、返回值,如果有復(fù)雜的算法和實(shí)現(xiàn),也需要寫清楚
不要寫錯(cuò)誤的注釋,不要無謂的注釋
異常
* 不要輕易使用 try/except
* except 后面需要指定捕捉的異常,裸露的 except 會捕捉所有異常,意味著會隱藏潛在的問題
* 可以有多個(gè) except 語句,捕捉多種異常,分別做異常處理
* 使用 finally 子句來處理一些收尾操作
|