1. 程式人生 > >Django專案開發流程&專案架構

Django專案開發流程&專案架構

專案開發流程&專案架構

1. 軟體開發的一般流程

1. 需求分析及確認:
    由需求分析工程師與客戶確認甚至挖掘需求。輸出需求說明文件。2. 概要設計及詳細設計:
    開發對需求進行概要設計,包括系統的基本處理流程,組織結構、模組劃分、介面設計、資料庫結構設計等。然後在概要設計的基礎上進行詳細設計。詳細設計中描述實現具體模組所涉及到的主要演算法、資料結構、類的層次結構及呼叫關係,需要說明軟體系統各個層次中的每一個程式(每個模組或子程式)的設計考慮,以便進行編碼和測試。基本達到虛擬碼的層面。3. 編碼:
    根據詳細設計文件進行編碼。在實際的專案開發中,編碼是佔時間最少的。
4. 測試: 一般有專業測試團隊進行測試。 5. 釋出或上線: 提供各種文件,比如防毒軟體掃描文件,安裝手冊,操作指南等一系列文件資料打包與程式一起釋出。當然後續還會有驗收和維護等操作。
需求分析及確認: 由需求分析工程師與客戶確認甚至挖掘需求。輸出需求說明文件。2. 概要設計及詳細設計: 開發對需求進行概要設計,包括系統的基本處理流程,組織結構、模組劃分、介面設計、資料庫結構設計等。然後在概要設計的基礎上進行詳細設計。詳細設計中描述實現具體模組所涉及到的主要演算法、資料結構、類的層次結構及呼叫關係,需要說明軟體系統各個層次中的每一個程式
(每個模組或子程式)的設計考慮,以便進行編碼和測試。基本達到虛擬碼的層面。3. 編碼: 根據詳細設計文件進行編碼。在實際的專案開發中,編碼是佔時間最少的。 4. 測試: 一般有專業測試團隊進行測試。 5. 釋出或上線: 提供各種文件,比如防毒軟體掃描文件,安裝手冊,操作指南等一系列文件資料打包與程式一起釋出。當然後續還會有驗收和維護等操作。

2. 企業常見開發模式

1.瀑布模型式:
    瀑布模型式是最典型的預見性的方法,嚴格遵循預先計劃的需求分析、設計、編碼、整合、測試、維護的步驟順序進行。瀑布式的主要的問題是它的嚴格分級導致的自由度降低,專案早期即作出承諾導致對後期需求的變化難以調整,代價高昂。瀑布式方法在需求不明並且在專案進行過程中可能變化的情況下基本是不可行的。
2.迭代式開發 (目前公司用的較多的開發模式) 每次只設計和實現這個產品的一部分; 逐步逐步完成的方法叫迭代開發; 每次設計和實現一個階段叫做一個迭代. 在迭代式開發方法中,整個開發工作被組織為一系列的短小的、 固定長度(如3周)的小專案,被稱為一系列的迭代。 每一次迭代都包括了需求分析、設計、實現與測試。 3.敏捷開發 (比較熱門的開發模式) 和迭代式開發類似,敏捷開發的週期可能更短,並且更加強調隊伍中的高度協作。一個小功能叫做一個story。開發人員要完成stroy文件的編寫。
瀑布模型式: 瀑布模型式是最典型的預見性的方法,嚴格遵循預先計劃的需求分析、設計、編碼、整合、測試、維護的步驟順序進行。瀑布式的主要的問題是它的嚴格分級導致的自由度降低,專案早期即作出承諾導致對後期需求的變化難以調整,代價高昂。瀑布式方法在需求不明並且在專案進行過程中可能變化的情況下基本是不可行的。 2.迭代式開發 (目前公司用的較多的開發模式) 每次只設計和實現這個產品的一部分; 逐步逐步完成的方法叫迭代開發; 每次設計和實現一個階段叫做一個迭代. 在迭代式開發方法中,整個開發工作被組織為一系列的短小的、 固定長度(如3周)的小專案,被稱為一系列的迭代。 每一次迭代都包括了需求分析、設計、實現與測試。 3.敏捷開發 (比較熱門的開發模式) 和迭代式開發類似,敏捷開發的週期可能更短,並且更加強調隊伍中的高度協作。一個小功能叫做一個story。開發人員要完成stroy文件的編寫。

Django主要模組及其功能

1.setting:    配置資訊 
    2.urls:            路由分發功能 
    3.views:      檢視處理函式 
    4.admin:     關於資料庫的後臺管理工具 
    5.models:   資料庫表定義的ORM(物件關係對映)

3, AXF專案架構搭建

1. 建立專案

django-admin startproject AXF-admin startproject AXF

2. 建立App

單獨開啟AXF專案, 選擇執行環境, 並建立App
python manage.py startapp App, 選擇執行環境, 並建立App
python manage.py startapp App

3.專案配置

開啟settings.py進行如下配置1,設定允許主機為所有, ALLOWED_HOSTS = ["*"]
​
2,在INSTALLED_APPS中註冊App3,  在專案根目錄下建立templates目錄,並在settings.py中TEMPLATES給DIRS新增路徑4,  在mysql中建立新資料庫axf, 並配置資料庫為mysql, 
​
    DATABASES = {    
        'default': {        
            'ENGINE': 'django.db.backends.mysql',       
            'NAME': 'axf',       
            'HOST': '127.0.0.1',        
            'PORT': '3306',        
            'USER': 'root',        
            'PASSWORD': 'root',    
        }
    }
​
5,  設定語言為中文:
    LANGUAGE_CODE = 'zh-hans'6,  設定時區:
    TIME_ZONE = 'Asia/Shanghai'7,  配置靜態檔案和媒體檔案目錄
    7.1 在根目錄下建立static目錄, 並在static目錄中建立uploads目錄
    7.2 在setting.py中配置
        STATICFILES_DIRS = [
            os.path.join(BASE_DIR, 'static'), 
        ]
        MEDIA_ROOT = os.path.join(BASE_DIR, 'static/uploads')
    .py進行如下配置1,設定允許主機為所有, ALLOWED_HOSTS = ["*"]
​
2,在INSTALLED_APPS中註冊App3,  在專案根目錄下建立templates目錄,並在settings.py中TEMPLATES給DIRS新增路徑4,  在mysql中建立新資料庫axf, 並配置資料庫為mysql, 
​
    DATABASES = {    
        'default': {        
            'ENGINE': 'django.db.backends.mysql',       
            'NAME': 'axf',       
            'HOST': '127.0.0.1',        
            'PORT': '3306',        
            'USER': 'root',        
            'PASSWORD': 'root',    
        }
    }
​
5,  設定語言為中文:
    LANGUAGE_CODE = 'zh-hans'6,  設定時區:
    TIME_ZONE = 'Asia/Shanghai'7,  配置靜態檔案和媒體檔案目錄
    7.1 在根目錄下建立static目錄, 並在static目錄中建立uploads目錄
    7.2 在setting.py中配置
        STATICFILES_DIRS = [
            os.path.join(BASE_DIR, 'static'), 
        ]
        MEDIA_ROOT = os.path.join(BASE_DIR, 'static/uploads')
    

4.目錄結構

static目錄

根據專案需求在static目錄中建立以下目錄:
    應用目錄app
    樣式目錄css
    字型目錄fonts
    圖片目錄img
    指令碼檔案目錄js
    媒體檔案目錄uploads
 且在app目錄下針對每個功能模組分別建立以下目錄,分別存放每個功能模組的靜態檔案
    首頁home
    閃購market
    購物車cart
    我的mine:
    應用目錄app
    樣式目錄css
    字型目錄fonts
    圖片目錄img
    指令碼檔案目錄js
    媒體檔案目錄uploads
 且在app目錄下針對每個功能模組分別建立以下目錄,分別存放每個功能模組的靜態檔案
    首頁home
    閃購market
    購物車cart
    我的mine

templates目錄

根據專案需求在templates中建立以下目錄和檔案, 分別存放每個功能模組的模板
    首頁home
    閃購market
    購物車cart
    我的mine基礎模板: base.html 
    主體模板: base_main.html, 分別存放每個功能模組的模板
    首頁home
    閃購market
    購物車cart
    我的mine基礎模板: base.html 
    主體模板: base_main.html

5. App配置

在App中建立並配置urls.py檔案,並配置好工程urls.py的路由規則

6.編寫程式碼

此處省略一萬行程式碼...

7. 複製虛擬環境中的包

在舊環境中使用:pip freeze > a.txt
在新環境中使用: pip install -r a.txt
在新環境中使用: pip install -r a.txt

4. Swiper的使用