django——簡介

1.django的介紹

Django是一個開放源代碼Web應用框架,由Python寫成。採用了MVT軟件設計模式,即模型Model,視圖View和模板Template。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容爲主的網站的。並於2005年7月在BSD許可證下發布。這套框架是以比利時吉普賽爵士吉他手Django Reinhardt來命名的。php

Django的主要目標是使得開發複雜的、數據庫驅動的網站變得簡單。Django注重組件的重用性和「可插拔性」,敏捷開發DRY法則(Don't Repeat Yourself)。在Django中Python被廣泛使用,甚至包括配置文件和數據模型。html

Django框架的核心包括:一個 面向對象 的映射器,用做數據模型(以Python的形式定義)和關係性數據庫間的介質;一個基於正則表達式的URL分發器;一個視圖系統,用於處理請求;以及一個模板系統。python

核心框架中還包括:web

  • 一個輕量級的、獨立的Web服務器,用於開發和測試。
  • 一個表單序列化及驗證系統,用於HTML表單和適於數據庫存儲的數據之間的轉換。
  • 一個緩存框架,並有幾種緩存方式可供選擇。
  • 中間件支持,容許對請求處理的各個階段進行干涉。
  • 內置的分發系統容許應用程序中的組件採用預約義的信號進行相互間的通訊。
  • 一個序列化系統,可以生成或讀取採用XMLJSON表示的Django模型實例。

2.MVC與MTV的區別

2.1 MVC

Web服務器開發領域裏著名的MVC模式,所謂MVC就是把Web應用分爲模型(M),控制器(C)和視圖(V)三層,他們之間以一種插件式的、鬆耦合的方式鏈接在一塊兒,模型負責業務對象與數據庫的映射(ORM),視圖負責與用戶的交互(頁面),控制器接受用戶的輸入調用模型和視圖完成用戶的請求,其示意圖以下所示:正則表達式

 

2.2 MTV

Django的MTV模式本質上和MVC是同樣的,也是爲了各組件間保持鬆耦合關係,只是定義上有些許不一樣,Django的MTV分別是值:shell

    1. M 表明模型(Model): 負責業務對象和數據庫的關係映射(ORM)。
    2. T 表明模板 (Template):負責如何把頁面展現給用戶(html)。
    3. V 表明視圖(View): 負責業務邏輯,並在適當時候調用Model和Template。
      除了以上三層以外,還須要一個URL分發器,它的做用是將一個個URL的頁面請求分發給不一樣的View處理,View再調用相應的Model和Template,MTV的響應模式以下所示:

 

通常是用戶經過瀏覽器向咱們的服務器發起一個請求(request),這個請求回去訪問視圖函數,(若是不涉及到數據調用,那麼這個時候視圖函數返回一個模板也就是一個網頁給用戶),視圖函數調用模型,模型去數據庫查找數據,而後逐級返回,視圖函數把返回的數據填充到模板中空格中,最後返回網頁給用戶。數據庫

 

3 django的下載與安裝

3.1 下載Django:

pip install django

 

3.2 建立一個django project

django-admin startproject mysite

 

當前目錄下會生成mysite的工程,目錄結構以下:django

----mysite\            #目錄與Django無關,只是你項目的容器,能夠任意命名
    |----manage.py        #manage.py ----- Django項目裏面的工具,經過它能夠調用django shell和數據庫等。
    |----mysite\         #內層的目錄是真正的項目文件包裹目錄,它的名字是你引用內部文件的包名,例如:。
    |    |----settings.py    #settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標誌以及其餘一些工做的變量。
    |    |----urls.py       #urls.py ----- 負責把URL模式映射到應用程序。
    |    |----wsgi.py       #一個基於WSGI的web服務器進入點,提供底層的網絡通訊功能,一般不用關心。
    |    |----__init__.py    #一個定義包的空文件。mysite/mysite.urls

 3.3 啓動django項目

python manage.py runserver 8080

 

這樣咱們的django就啓動起來了!當咱們訪問:http://127.0.0.1:8080/設計模式

 

 

3.4 其餘的經常使用指令

建立數據庫表 或 更改數據庫表或字段瀏覽器

1 # 1. 建立更改的文件
2 python manage.py makemigrations
3 # 2. 將生成的py文件應用到數據庫
4 python manage.py migrate

這種方法能夠在SQL等數據庫中建立與models.py代碼對應的表,不須要本身手動執行SQL。

使用開發服務器

開發服務器,即開發時使用,通常修改代碼後會自動重啓,方便調試和開發,可是因爲性能問題,建議只用來測試,不要用在生產環境。

python manage.py runserver
 
# 當提示端口被佔用的時候,能夠用其它端口:
python manage.py runserver 8001
python manage.py runserver 9999
(固然也能夠kill掉佔用端口的進程,具體後面有講,此處想知道的同窗可查下 lsof 命令用法)
 
# 監聽機器全部可用 ip (電腦可能有多個內網ip或多個外網ip)
python manage.py runserver 0.0.0.0:8000
# 若是是外網或者局域網電腦上能夠用其它電腦查看開發服務器
# 訪問對應的 ip加端口,好比 http://172.16.20.2:8000

 

 

Django 項目環境終端

python manage.py shell

 

這個命令和 直接運行 python 或 bpython 進入 shell 的區別是:你能夠在這個 shell 裏面調用當前項目的 models.py 中的 API,對於操做數據,還有一些小測試很是方便。若是你安裝了 bpython 或 ipython 會自動用它們的界面,推薦安裝 bpython。

相關文章
相關標籤/搜索