Django簡介

Django是一種基於Python的Web開發框架python

什麼是web框架?mysql

框架,即framework,特指爲解決一個開放性問題而設計的具備必定約束性的支撐結構,使用框架能夠幫你快速開發特定的系統,簡單地說,就是你用別人搭建好的舞臺來作表演。程序員

對於全部的Web應用,本質上其實就是一個socket服務端,用戶的瀏覽器其實就是一個socket客戶端。web

最簡單的Web應用就是先把HTML用文件保存好,用一個現成的HTTP服務器軟件,接收用戶請求,從文件中讀取HTML,返回。若是要動態生成HTML,就須要把上述步驟本身來實現。不過,接受HTTP請求、解析HTTP請求、發送HTTP響應都是苦力活,若是咱們本身來寫這些底層代碼,還沒開始寫動態HTML呢,就得花個把月去讀HTTP規範。正確的作法是底層代碼由專門的服務器軟件實現,咱們用Python專一於生成HTML文檔。由於咱們不但願接觸到TCP鏈接、HTTP原始請求和響應格式,因此,須要一個統一的接口,讓咱們專心用Python編寫Web業務。正則表達式

Django具備如下特色:sql

  • 功能完善、要素齊全:該有的、能夠沒有的都有,經常使用的、不經常使用的工具都用。Django提供了大量的特性和工具,無須你本身定義、組合、增刪及修改。可是,在有些人眼裏這被認爲是‘臃腫’不夠靈活,發揮不了程序員的主動能力。
  • 完善的文檔:通過十多年的發展和完善,Django有普遍的實踐經驗和完善的在線文檔(惋惜大多數爲英文)。開發者遇到問題時能夠搜索在線文檔尋求解決方案。
  • 強大的數據庫訪問組件:Django的Model層自帶數據庫ORM組件,使得開發者無須學習其餘數據庫訪問技術(SQL、pymysql、SQLALchemy等)。固然你也能夠不用Django自帶的ORM,而是使用其它訪問技術,好比SQLALchemy。
  • 靈活的URL映射:Django使用正則表達式管理URL映射,靈活性高。
  • 豐富的Template模板語言:相似jinjia模板語言,不但原生功能豐富,還能夠自定義模板標籤。
  • 自帶免費的後臺管理系統:只須要經過簡單的幾行配置和代碼就能夠實現一個完整的後臺數據管理控制平臺。
  • 完整的錯誤信息提示:在開發調試過程當中若是出現運行錯誤或者異常,Django能夠提供很是完整的錯誤信息幫助定位問題。

MVC模式與MTV模式shell

MTV模式:數據庫

Django的MTV模式本質是各組件之間爲了保持鬆耦合關係,Django的MTV分別表明:django

       Model(模型):負責業務對象與數據庫的對象(ORM)瀏覽器

       Template(模版):負責如何把頁面展現給用戶

       View(視圖):負責業務邏輯,並在適當的時候調用Model和Template

       此外,Django還有一個url分發器,它的做用是將一個個URL的頁面請求分發給不一樣的view處理,view再調用相應的Model和Template

MVC模式:

最先由Trygve Teenskaug在1978年提出,上世紀80年代是程序語言Smalltalk的一種內部架構。後來MVC被其餘領域借鑑,成爲了軟件工程中的一種軟件架構模式。MVC把Web框架分爲3個基礎部分:

模型(Model):用於封裝與應用程序的業務邏輯相關的數據及對數據的處理方法,是Web應用程序中用於處理應用程序的數據邏輯的部分,Model只提供功能性的接口,經過這些接口能夠獲取Model的全部功能。白話說,這個模塊就是Web框架和數據庫的交互層。

視圖(View):負責數據的顯示和呈現,是對用戶的直接輸出。

控制器(Controller):負責從用戶端收集用戶的輸入,能夠當作提供View的反向功能。

這三個部分互相獨立,但又相互聯繫,使得改進和升級界面及用戶交互流程,在Web開發過程任務分配時,不須要重寫業務邏輯及數據訪問代碼。

MVC在Python以外的語言中也有普遍應用,例如VC++的MFC,Java的Structs及Spring、C#的.NET開發框架,都很是有名。

Django的基本命令:

1 下載django:

 1 pip3 install django 

2.建立Django項目:

1 格式:django-admin startproject 項目名

1)      manage.py ----- Django項目裏面的工具,經過它能夠調用django shell和數據庫等。

2)      settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標誌以及其餘一些工做的變量。

3)      urls.py ----- 負責把URL模式映射到應用程序。

3.建立一個應用:

1 python manage.py startapp 應用名
2  
3 譬如:
4  
5        python manage.py startapp app01

4.啓動Django項目:

1 python manage.py runserver ip port
2  
3 譬如: #默認IP爲127.0.0.1
4  
5        python manage.py runserver 8080

5.同步更改數據庫或字段:

python manage.py makemigrations
 
python manage.py migrate

這種方法能夠建立表,當你在models.py中新增了類時,運行它就能夠自動在數據庫中建立表了,不用手動建立。

PS:當執行python manage.py makemigrations報錯
... ...
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'.
Did you install mysqlclient or MySQL-python?

解決方法:

  在app01應用下面__init__.py文件中

1 import pymysql
2 pymysql.install_as_MySQLdb()

6.清空數據庫:

1 python manage.py flush
2  
3 此命令會詢問是 yes 仍是 no, 選擇 yes 會把數據所有清空掉,只留下空表。

7.建立超級管理員:

1 python manage.py createsuperuser
2 # 按照提示輸入用戶名和對應的密碼就行了郵箱能夠留空,用戶名密碼必填
3 python manage.py changepassword username
4 #修改用戶名密碼

8.Django項目環境終端:

python manage.py shell

這個命令和 直接運行 python 進入 shell 的區別是:你能夠在這個 shell 裏面調用當前項目的 models.py 中的 API,對於操做數據的測試很是方便。

9.數據庫執行命令:

1 python manage.py dbshell
2  
3 Django 會自動進入在settings.py中設置的數據庫,若是是 MySQL 或 postgreSQL,會要求輸入數據庫用戶密碼。
4  
5 在這個終端能夠執行數據庫的SQL語句。若是您對SQL比較熟悉,可能喜歡這種方式。

10.更多命令:

1 python manage.py
2  
3 查看全部的命令,忘記子名稱的時候特別有用。
相關文章
相關標籤/搜索