它是當前Python世界裏最負盛名且最成熟的網絡框架。最初用來製做在線新聞的Web站點,目前已發展爲應用最普遍的Python網絡框架。Django的各模塊之間結合得比較緊密,因此在功能強大的同時又是一個相對封閉的系統,可是其健全的在線文檔及開發社區,使開發者在遇到問題時能找到解決方法。html
相對於Python的其餘Web框架,Django的功能是最完整的,Django定義了服務發佈、路由映射、模板編程、數據處理的一整套功能。這也意味着Django模塊之間緊密耦合,開發者須要學習Django本身定義的這一整套技術。Django的主要特色以下。python
Django的組成結構程序員
Django是遵循MVC架構的Web開發框架,其主要由如下幾部分組成。web
Tornado是使用Python編寫的一個強大的可擴展的Web服務器。它在處理高網絡流量時表現得足夠強健,卻在建立和編寫時有着足夠的輕量級,並可以被用在大量的應用和工具中。Tornado做爲FriendFeed網站的基礎框架,於2009年9月10日發佈,目前已經得到了不少社區的支持,而且在一系列不一樣的場合中獲得應用。除FriendFeed和Facebook外,還有不少公司在生產上轉向Tornado,包括Quora、Turntable.fm、Bit.ly、Hipmunk及MyYearbook等。正則表達式
相對於其餘Python網絡框架,Tornado有以下特色。數據庫
Flask是Python Web框架族裏比較年輕的一個,於2010年出現,這使得它吸取了其餘框架的優勢,而且把本身的主要領域定義在了微小項目上。同時,它是可擴展的,Flask讓開發者本身選擇用什麼數據庫插件存儲他們的數據。不少功能簡單但性能卓越的網站就是基於Flask框架而搭建的,好比http://httpbin.org/就是一個功能簡單但性能強大的HTTP測試項目。Flask是一個面向簡單需求和小型應用的微框架。django
相對於其餘Python語言的Web框架而言,Flask的特色能夠歸結以下。編程
網絡程序調試是在將編制好的網站投入實際運行前,用手工或編譯程序等方法進行測試,修正語法錯誤和邏輯錯誤的過程。有經驗的開發者都知道,這是保證網站系統可以正式應用的必要步驟。
Flask 自帶的開發服務器使開發者在調試程序時無須再安裝其餘任何網絡服務器,好比Tomcat、JBoss、Apache等。Flask默認處於調試狀態,使得運行中的任何錯誤會同時向兩個目標發送信息:一個是Python Console,即啓動Python程序的控制檯;另外一個是HTTP客戶端,即Flask開發服務器將調試信息傳遞給了客戶端。瀏覽器
單元測試是對最小軟件開發單元的測試,其重點測試程序的內部結構,主要採用白盒測試方法,由開發人員負責。單元測試的主要目標是保證函數在給定的輸入狀態下,可以獲得預想的輸出,在不符合要求時可以提醒開發人員進行檢查。
Flask提供了一個與Python自帶的單元測試框架unitest無縫銜接的測試接口,即Flask對象的test_client()函數。經過test_client()函數,測試程序能夠模擬進行HTTP訪問的客戶端來調用Flask路由處理函數,而且獲取函數的輸出來進行自定義的驗證。緩存
將HTML頁面與後臺應用程序聯繫起來一直是網站程序框架的一個重要目標。Flask經過使用Jinja2模板技術解決了這個問題。Jinja2是一個很是靈活的HTML模板技術,它是從Django模板發展而來的,可是比Django模板使用起來更加自由且更加高效。Jinja2模板使用配製的語義系統,提供靈活的模板繼承技術,自動抗擊XSS跨站攻擊而且易於調試。
WSGI(Web Server Gateway Interface)具備很強的伸縮性且能運行於多線程或多進程環境下,由於Python線程全局鎖的存在,使得WSGI的這個特性相當重要。WSGI已是Python界的一個主要標準,各類大型網路服務器對其都有良好的支持。WSGI位於Web應用程序與Web服務器之間,與WSGI徹底兼容使得Flask可以配置到各類大型網絡服務器中。
Flask是徹底基於Unicode的。這對製做非純ASCII字符集的網站來講很是方便。HTTP自己是基於字節的,也就是說任何編碼格式均可以在HTTP中傳輸。可是,HTTP要求在HTTP Head中顯式地聲明在本次傳輸中所應用的編碼格式。在默認狀況下,Flask會自動添加一個UTF-8編碼格式的HTTP Head,使程序員無須擔憂編碼的問題。
Django version | Python versions |
---|---|
1.8 | 2.7, 3.2 (until the end of 2016), 3.3, 3.4, 3.5 |
1.9, 1.10 | 2.7, 3.4, 3.5 |
1.11 | 2.7, 3.4, 3.5, 3.6 |
2.0 | 3.4, 3.5, 3.6 |
2.1 | 3.5, 3.6, 3.7 |
Python環境與Django版本存在對應關係,注意由於版本不對應產生的一些錯誤..........
命令行直接下載 pip3 install django==1.11.11 pycharm下載 File-->Settings-->Project-->Project Interprter--> 驗證是否下載成功 django-admin 建立django項目的方式: 方式1(命令行建立): 建立django項目 django-admin startproject 項目名 建立app應用 python3 manage.py startapp app01 啓動django項目 python3 manage.py runserver ps:用命令行建立django默認不會自動建立templates文件夾,須要你手動本身建立(注意改文件夾路徑是否被添加配置文件中) 方式2(pycharm建立) File >>> new project 選擇第二個django 須要注意名字不能有中文,選擇本地的解釋器,勾選後臺管理 建立app pycharm命令行建立 python3 manage.py startapp app01 啓動django項目 Tools下面run manage task功能欄啓動點小綠色箭頭 強調: 1.用django必定要保證只有一個在運行狀態 切記切記!!!!!!! 2.必定記得清瀏覽器的緩存
應用名
migrations 數據庫遷移記錄相關數據
admin.py django後臺管理相關
models.py 模型表相關
views.py 視圖函數相關
項目名
settings.py 配置文件
urls.py 路由與視圖函數的映射關係
templates
項目用到的全部的html文件
manage.py
django入口文件