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
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 查看全部的命令,忘記子名稱的時候特別有用。