Django框架簡介及安裝

1、經常使用的web框架

一、企業級開發框架——Django

它是當前Python世界裏最負盛名且最成熟的網絡框架。最初用來製做在線新聞的Web站點,目前已發展爲應用最普遍的Python網絡框架。Django的各模塊之間結合得比較緊密,因此在功能強大的同時又是一個相對封閉的系統,可是其健全的在線文檔及開發社區,使開發者在遇到問題時能找到解決方法。html

Django框架的特色

相對於Python的其餘Web框架,Django的功能是最完整的,Django定義了服務發佈、路由映射、模板編程、數據處理的一整套功能。這也意味着Django模塊之間緊密耦合,開發者須要學習Django本身定義的這一整套技術。Django的主要特色以下。python

  • 完善的文檔:通過10多年的發展和完善,Django有普遍的應用和完善的在線文檔,開發者遇到問題時能夠搜索在線文檔尋求解決方案。
  • 集成數據訪問組件:Django的Model層自帶數據庫ORM組件,使開發者無須學習其餘數據庫訪問技術(dbi、SQLAlchemy等)。
  • 強大的URL映射技術:Django使用正則表達式管理URL映射,所以給開發者帶來了極高的靈活性。
  • 後臺管理系統自動生成:開發者只需經過簡單的幾行配置和代碼就能夠實現完整的後臺數據管理Web控制檯。
  • 錯誤信息很是完整:在開發調試過程當中若是出現運行異常,則Django能夠提供很是完整的錯誤信息幫助開發者定位問題,好比缺乏xxx組件的配置引用等,這樣可使開發者立刻改正錯誤。

 Django的組成結構程序員

Django是遵循MVC架構的Web開發框架,其主要由如下幾部分組成。web

  • 管理工具(Management):一套內置的建立站點、遷移數據、維護靜態文件的命令工具。
  • 模型(Model):提供數據訪問接口和模塊,包括數據字段、元數據、數據關係等的定義及操做。
  • 視圖(View):Django的視圖層封裝了HTTP Request和Response的一系列操做和數據流,其主要功能包括URL映射機制、綁定模板等。
  • 模板(Template):是一套Django本身的頁面渲染模板語言,用若干內置的tags和filters定義頁面的生成方式。
  • 表單(Form):經過內置的數據類型和控件生成HTML表單。
  • 管理站(Admin):經過聲明須要管理的Model,快速生成後臺數據管理網站。

二、高併發處理框架——Tornado

Tornado是使用Python編寫的一個強大的可擴展的Web服務器。它在處理高網絡流量時表現得足夠強健,卻在建立和編寫時有着足夠的輕量級,並可以被用在大量的應用和工具中。Tornado做爲FriendFeed網站的基礎框架,於2009年9月10日發佈,目前已經得到了不少社區的支持,而且在一系列不一樣的場合中獲得應用。除FriendFeed和Facebook外,還有不少公司在生產上轉向Tornado,包括Quora、Turntable.fm、Bit.ly、Hipmunk及MyYearbook等。正則表達式

相對於其餘Python網絡框架,Tornado有以下特色。數據庫

  • 完備的Web框架:Tornado也提供了URL路由映射、Request上下文、基於模板的頁面渲染技術等開發Web應用的必備工具。
  • 高效的網絡庫,性能與Twisted、Gevent等底層Python框架相媲美:提供了異步I/O支持、超時事件處理。這使得Tornado除了能夠做爲Web應用服務器框架,還可用來作爬蟲應用、物聯網關、遊戲服務器等後臺應用。
  • 提供高效HTTPClient:除了服務器端框架,Tornado還提供了基於異步框架的HTTP客戶端。
  • 提供高效的內部HTTP服務器:雖然其餘Python網絡框架(Django、Flask)也提供了內部HTTP服務器,但它們的HTTP服務器因爲性能緣由只能用於測試環境。而Tornado的HTTP服務器與Tornado異步調用緊密結合,能夠直接用於生產環境。
  • 完備的WebSocket支持:WebSocket是HTML5的一種新標準,實現了瀏覽器與服務器之間的雙向實時通訊。

三、支持快速建站的框架——Flask

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開發服務器將調試信息傳遞給了客戶端。瀏覽器

  • 與Python單元測試功能無縫銜接

單元測試是對最小軟件開發單元的測試,其重點測試程序的內部結構,主要採用白盒測試方法,由開發人員負責。單元測試的主要目標是保證函數在給定的輸入狀態下,可以獲得預想的輸出,在不符合要求時可以提醒開發人員進行檢查。 
Flask提供了一個與Python自帶的單元測試框架unitest無縫銜接的測試接口,即Flask對象的test_client()函數。經過test_client()函數,測試程序能夠模擬進行HTTP訪問的客戶端來調用Flask路由處理函數,而且獲取函數的輸出來進行自定義的驗證。緩存

  • 使用Jinja2模板

將HTML頁面與後臺應用程序聯繫起來一直是網站程序框架的一個重要目標。Flask經過使用Jinja2模板技術解決了這個問題。Jinja2是一個很是靈活的HTML模板技術,它是從Django模板發展而來的,可是比Django模板使用起來更加自由且更加高效。Jinja2模板使用配製的語義系統,提供靈活的模板繼承技術,自動抗擊XSS跨站攻擊而且易於調試。

  • 徹底兼容WSGI 1.0標準

WSGI(Web Server Gateway Interface)具備很強的伸縮性且能運行於多線程或多進程環境下,由於Python線程全局鎖的存在,使得WSGI的這個特性相當重要。WSGI已是Python界的一個主要標準,各類大型網路服務器對其都有良好的支持。WSGI位於Web應用程序與Web服務器之間,與WSGI徹底兼容使得Flask可以配置到各類大型網絡服務器中。

  • 基於Unicode編碼

Flask是徹底基於Unicode的。這對製做非純ASCII字符集的網站來講很是方便。HTTP自己是基於字節的,也就是說任何編碼格式均可以在HTTP中傳輸。可是,HTTP要求在HTTP Head中顯式地聲明在本次傳輸中所應用的編碼格式。在默認狀況下,Flask會自動添加一個UTF-8編碼格式的HTTP Head,使程序員無須擔憂編碼的問題。

2、Django版本

一、Django版本年份

二、Python環境與Django版本對應表:

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版本存在對應關係,注意由於版本不對應產生的一些錯誤..........

3、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.必定記得清瀏覽器的緩存                  

4、django各個文件的做用

應用名
    migrations 數據庫遷移記錄相關數據
    admin.py django後臺管理相關
    models.py 模型表相關
    views.py 視圖函數相關

項目名
    settings.py 配置文件
    urls.py    路由與視圖函數的映射關係

templates
    項目用到的全部的html文件

manage.py 
    django入口文件
相關文章
相關標籤/搜索