Django框架(一):初識
文章目錄
一、認識Django
1、簡介
Django,是用python語言寫的開源web開發框架,并遵循MVC
設計。
Django的主要目:簡便、快速的開發「數據庫」驅動的網站。
它強調代碼復用
,多個組件可以很方便的以"插件
"形式服務于整個框架,Django有許多功能強大的第三方插件,你甚至可以很方便的開發出自己的工具包。這使得Django具有很強的可擴展性
。它還強調快速開發和DRY
(DoNotRepeatYourself)原則。
2、MVC與MVT模式
(1)MVC模式
有一種程序設計模式叫MVC
,其核心思想是分工、解耦,讓不同的代碼塊之間降低耦合,增強代碼的可擴展性和可移植性,實現向后兼容。
MVC的全拼為Model-View-Controller,最早由TrygveReenskaug在1978年提出。
是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程序語言Smalltalk發明的一種軟件設計模式;是為了將傳統的輸入(input)、處理(processing)、輸出(output)任務運用到圖形化用戶交互模型中而設計的。
隨著標準輸入輸出設備的出現,開發人員只需要將精力集中在業務邏輯的分析與實現上。
后來被推薦為Oracle旗下Sun公司Java EE平臺的設計模式,并且受到越來越多的使用ColdFusion(ColdFusion(直譯:冷聚變),是一個動態Web服務器)和PHP的開發者的歡迎。
現在雖然不再使用原來的分工方式,但是這種分工的思想被沿用下來,廣泛應用于軟件工程中,是一種典型并且應用廣泛的軟件架構模式。后來,MVC的思想被應用在了Web開發方面,被稱為Web MVC框架。
- M全拼為
Model
,主要封裝對數據庫層的訪問,對數據庫中的數據進行增、刪、改、查操作。 - V全拼為
View
,用于封裝結果,生成頁面展示的html內容。 - C全拼為
Controller
,用于接收請求,處理業務邏輯,與Model和View交互,返回結果。
(2)Django的MVT模式
Django借鑒MVC模式,根據自身特點,提出了MVT模式!
- M全拼為
Model
,與MVC中的M功能相同,負責和數據庫交互,進行數據處理。 - V全拼為
View
,與MVC中的C功能相同,接收請求,進行業務處理,返回應答。 - T全拼為
Template
,與MVC中的V功能相同,負責封裝構造要返回的html。
從這里看MTV只是把名字改了下,其實不然,其中有好多細節方面是與MVC不一樣的!
二、Django安裝與使用
# 安裝django命令
pip3 install django
pip3 install django==2.1.1 # 指定安裝的django版本
# 卸載django
pip3 uninstall django
1、手動創建django項目
mkdir ./django
cd ./django
django startproject mysite # 開啟一個django項目,項目名為mysite
cd mysite
ls -al
manage.py
這是什么?有什么作用?
manage.py是用來啟動django服務器的!
# 啟動命令:
python3 manage.py runserver 8080
接下來我們訪問一下,我們什么都沒有配置,應該會出現django默認頁面!
ok,成功!
接下來我們再進mysite文件夾
進去看看!
其中現在我們只需要知道settings.py,urls.py
即可!wsgi.py中都是socket相關的代碼,實現了wsgi協議!
settings.py: 項目的全局配置文件
urls.py: 負責url的分發控制,url與視圖函數的對應關系!
其實一個項目中還可以有很小應用,或者說小模塊,本身可以獨立出來的!比如微信是一個項目,朋友圈、小程序都可以看作一個單獨的應用模塊!因此為了減少耦合,并提高可維護性、可擴展性!
django提供了產生應用的命令:
# 可以開啟多個應用
python manage startapp app01
python manage startapp app02
以其中一個應用來看:
# 我們可以來看看它的目錄結構
cd app01
ls -al
其中目前需要知道的是
models.py、views.py
,每個應用都有自己獨立的model、view文件,降低耦合!
2、pycharm創建django項目
成功!進入項目…
這里我們可以縱觀全局目錄結構:
3、核對配置settings.py
(1)配置模板文件(template)的查找路徑
看看DIRS是否配置了路徑!一般pycharm都會給你自動配置的
!有小伙伴可能會問BASE_DIR是啥呀!如下:
這個常量就定義在settings文件的最前面!
(2)去掉csrf驗證
把這行刪除,不然你開啟django服務器,服務器會拒絕你的post請求
!
智能推薦
Django框架(一)基礎
一、Django介紹 2003的秋天,美國的web團隊當時維護很多個web網站,這些網站需求比較多,但是時間很短,出于這個原因研發了Django框架,2005年將框架開源,2007年命名為DjangoDjango使用Python編寫的開源框架,功能齊全,市場占額是 50% 左右,剩余的就是flask和Tornado居 多。 * Django特性 優點: 重量級的框架,提供了豐富的功能組件,讓開發變...
Spring框架一:Spring初識
一、框架 ? 框架就是某些個人或者組織定義了一系列的類或者接口,提前定義好了一些實現,用戶可以在這些類和接口的基礎之上,使用這些類來迅速的形成某個領域或者某個行業的解決方案,簡化開發的過程,提高開發的效率。就好比:你要蓋一座房子,先把柱子,房梁等先建設好,然后只需要向房子中填充就可以了,可以按照自己的需求進行設計,其實我們做的項目、系統都是類似的方式,如果所有的代碼全部都需要自己實現,那么這個工程...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
猜你喜歡
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...
styled-components —— React 中的 CSS 最佳實踐
https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...