Django開發期刊管理系統1——基本介紹

一. python環境

 

 我們選擇3.8版本.直接官網下載對應版本安裝即可。http://www.python.org/

查看版本可以在命令行輸入python

 

 

django的安裝首先https://www.djangoproject.com/download/下載,這裏選擇2.2。

我使用的是anaconda, 作用如下:

1)Anaconda 附帶了一大批常用數據科學包,它附帶了 conda、Python 和 150 多個科學包及其依賴項。因此你可以立即開始處理數據。

2)管理包

Anaconda 是在 conda(一個包管理器和環境管理器)上發展出來的。

在數據分析中,你會用到很多第三方的包,而conda(包管理器)可以很好的幫助你在計算機上安裝和管理這些包,包括安裝、卸載和更新包。

3)管理環境

爲什麼需要管理環境呢?

比如你在A項目中用了 Python 2,而新的項目B老大要求使用Python 3,而同時安裝兩個Python版本可能會造成許多混亂和錯誤。這時候 conda就可以幫助你爲不同的項目建立不同的運行環境。

還有很多項目使用的包版本不同,比如不同的pandas版本,不可能同時安裝兩個 Numpy 版本,你要做的應該是,爲每個 Numpy 版本創建一個環境,然後項目的對應環境中工作。這時候conda就可以幫你做到。

具體介紹可以參考 https://www.zhihu.com/question/58033789 或者閱讀官網文檔https://www.anaconda.com/

 下載我是直接去清華開源軟件鏡像站下載的,https://mirrors.tuna.tsinghua.edu.cn/,不過似乎在支持下載和不支持下載之間徘徊。

pip的方式我不太清楚,你可以試試,切換清華源然後下載

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask

python 大蟒 ['paɪθən]  &  anaconda 水蟒 [,ænə'kɑndə]
Anacondas原產於南美洲,而Python則天然存在於亞洲和非洲的熱帶地區。
相比之下,Anaconda更重,但python更長。
作爲蛇,Python比anaconda更靈活。
Anaconda的着色圖案被組織和安排得更有順序,但python不是。
Anaconda是一個很好的游泳運動員,經常在水邊發現,而python喜歡棲息在樹上和乾燥的棲息地。
Python作爲寵物在人類中更受歡迎,但Anacondas通常不會被作爲寵物飼養。
Anaconda由雌性產出新生蛇是很典型的,而Python是下蛋並孵化出來

二. ide 代碼編輯工具-pycharm

在此稱讚下jetbrain,良心啊,認證學生你可以白嫖pycharm(idea也可以)專業版到畢業

下載地址: https://www.jetbrains.com/pycharm/download/

PyCharm是由JetBrains打造的一款Python IDE。我們知道,VS2010的重構插件Resharper就是出自JetBrains之手。那麼,PyCharm有什麼吸引人的特點呢?

首先,PyCharm用於一般IDE具備的功能,比如, 調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制……

另外,PyCharm還提供了一些很好的功能用於Django開發,同時支持Google App Engine,更酷的是,PyCharm支持IronPython

三. 簡單介紹下開發環境-Django

 

 

 MTV設計模式:

Django對傳統的MVC設計模式進行了修改,將視圖分成View模塊和Template模塊兩部分,
將動態的邏輯處理與靜態的頁面展現分離開。而Model採用了ORM技術,將關係型數據庫表抽象
成面向對象的Python類,將表操作轉換成類操作,避免了複雜的SQL語句編寫。MTV和MVC本質上
是一樣的。

模型(Model):和MVC中的定義一樣,處理數據邏輯
模板(Template):將數據與HTML語言結合起來的引擎,展示頁面
視圖(View):負責實際的業務邏輯實現

 

 

對比MVC和MVT兩種模式區別

 

M全拼爲Model,與MVC中的M功能相同,負責和數據庫交互,進行數據處理。

V全拼爲View,與MVC中的C功能相同,接收請求,進行業務處理,返回應答。

T全拼爲Template,與MVC中的V功能相同,負責封裝構造要返回的html。

Django中MVT的設計是遵守 MVC的流程去執行。

MVT即模型-模版-視圖模式,其標準名稱是有爭議的。在MVC的解釋中,視圖描述了展現給用戶的數據,是指所看到的數據,而不是如何看見它。在python中視圖是指對某一特定URL的回調函數,因爲回調函數描述了所要展現的數據。模版用於將內容與展現分離。在django中,視圖描述了要展現的數據,而視圖一般轉交給模版。模版描述了數據如何展現,控制器則是指django框架本身,通過URL配置,系統將一個請求發送到一個合適的視圖。

 

M全拼爲Model(模塊),主要封裝對數據庫層的訪問, 數據處理,對數據庫中的數據進行增、刪、改、查操作。

V全拼爲View(視圖),界面顯示,用於封裝結果,生成頁面展示的html內容。

C全拼爲Controller(控制器),邏輯處理,用於接收請求,處理業務邏輯,與Model和View交互,返回結果。

 

MVC模塊的核心宗旨就是:解耦,模型的複用,讓不同的代碼之間的耦合度降低,增強代碼的擴展性和可移植性還有方便維護,模型不用關心處理結果展現,比如模型返回一些數據,然後交給不用的視圖展現,可以使用不同的視圖來訪問同一個模型。方便測試, 比如,將業務邏輯代碼寫在servlet裏面,需要部署到容器上,然後才能測試。而將業務邏輯代碼寫在類裏面,可以直接用main()測試(不依賴容器)。

 

MVC即模型,裏面存在視圖與控制器模式,就是爲那些需要爲同樣的數據提供多個視圖的應用程序而設計的。它很好地實現了數據層與表示層的分離,特別適用於開發與用戶圖形界面有關的應用程序,能夠提高效率,降低耦合度,增加代碼的可移植性,可以更好的去維護代碼。

控制器:控制器是用來處理用戶命令以及程序事件,模型維護數據並提供數據訪問方法;

視圖:視圖用於數據的顯示,把數據庫中的數據顯示到頁面上。

MVT執行順序

設計模式: 核心思想是分工,解耦,讓不同的代碼之間降低耦合,增強代碼的可擴展性和可移植性,實現向後兼容

1,客戶端發出請求,與關係型數據庫進行交互

2,路由接收請求,根據請求地址查找視圖

3,視圖接收,處理 找到相應的Model(數據交互)

4, 與關係型數據庫進行交互 取得數據  

5,將取到的數據返回給Model

6,將數據交給view進行處理

7,將數據套入到需要的template,封裝相對應的html,css,js編寫的模板語言

8,將封裝好的模板語言返回給view進行處理

9,客戶端接受結果進行渲染html和css 執行js

MVT基於MVC,所以流程與MVC十分相似,客戶端發送請求,根據請求地址去尋找視圖,視圖把接收並處理請求,訪問數據庫,提取數據,由視圖返回結果到模板上,客戶端接收渲染

 

MVC設計模式也可以叫做MVC的流程,從開頭到結束,是怎樣一步步執行的:

1,客戶端發出請求

2,controll,接收請求,進行業務處理 發送給Model

3, 與關係型數據庫進行交互 取得數據  

4,將取到的數據返回給Model

5,將數據交給controller.進行處理

6,將數據給view進行HTML,css,js等進行封裝

7,返回封裝好的HTML給controll

8,controll返回給客戶端進行渲染HTML和css執行js

 

MVC的缺點:事物都有兩面性,有好有壞,MVC也是這樣,他的缺點如下

使用mvc,會增加代碼量、相應地也會增加軟件開發的成文,設計的難度也會增加,適合大型項目。

(1)視圖跟控制器過於緊密的連接,(視圖與控制器是相互分離,但卻是聯繫緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。【例如,不可能總是在jsp頁面中直接訪問模型,一般放在邏輯控制層進行處理,servlet】)
(2)增加了系統結構和實現的複雜性
(3)部分高級界面工具或構造器不支持MVC
(4)視圖對模型數據的訪問效率低(依據模型操作接口的不同,視圖可能需要多次調用才能獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能。【例如,頁面的有一部分數據我並沒有更新,但是提交到模型層照樣會去獲得返回顯示 】)
(5)調試應用程序帶來了一定的困難。每個構件在使用之前都需要經過徹底的測試。
     簡單的小型項目,使用MVC設計反而會降低開發效率,層和層雖然相互分離,但是之間關聯性太強,沒有做到獨立的重用

四. 數據庫

我採用的是Navicat連接的sqlite3。sqilite3是Django自帶的數據庫,很方便
https://www.runoob.com/sqlite/sqlite-tutorial.html

SQLite是一個進程內的庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。它是一個零配置的數據庫,這意味着與其他數據庫一樣,您不需要在系統中配置。

就像其他數據庫,SQLite 引擎不是一個獨立的進程,可以按應用程序需求進行靜態或動態連接。SQLite 直接訪問其存儲文件。

爲什麼要用 SQLite?

    1、不需要一個單獨的服務器進程或操作的系統(無服務器的)。

    2、SQLite 不需要配置,這意味着不需要安裝或管理。

    3、一個完整的 SQLite 數據庫是存儲在一個單一的跨平臺的磁盤文件。

    4、SQLite 是非常小的,是輕量級的,完全配置時小於 400KiB,省略可選功能配置時小於250KiB。

    5、SQLite 是自給自足的,這意味着不需要任何外部的依賴。

    6、SQLite 事務是完全兼容 ACID 的,允許從多個進程或線程安全訪問。

    7、SQLite 支持 SQL92(SQL2)標準的大多數查詢語言的功能。

    8、SQLite 使用 ANSI-C 編寫的,並提供了簡單和易於使用的 API。

    9、SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中運行。

 

     

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章