天天看點

Django學習筆記(一)

Django介紹

Django的特點

Django 是從真實世界的應用中成長起來的,它是由美國堪薩斯(Kansas)州Lawrence 城中的一個網絡開發團隊的。它誕生于2003 年秋天,那時Lawrence Journal-World 報紙的程式員Adrian Holovaty和Simon Willison開始用 Python 來編寫程式。

最初用來制作線上新聞Web站點,并于2005年加入了BSD(Berkeley Software Distribution)許可證家族,成為開源網絡架構。2008年Django有了DSF(Django Software Foundation),Django的發展就由這個基金會來主導。

Django學習筆記(一)

經過Django數10年的發展,官網介紹官網的特點如上圖:“Django makes it easier to build better Web apps more quickly and with less code.”總的來說,Django已經具備以下特點:

  • 容易上手,開發速度快,安全性強。
  • 完善的文檔:Django有衆多的應用和完善的線上文檔
  • 內建資料通路元件:Django的Model層自帶資料庫ORM元件,開發者無需學習其他資料庫通路技術(DBI、SQLAlchemy等)。
  • 強大的URL映射技術:Django使用正規表達式管理URL映射,友善靈活。
  • 背景管理系統自動生成:自帶完整的背景資料庫管理Web控制台,使用者可以基于此建構自己的背景管理子產品。

安裝Django

在使用者安裝完Python環境後,可以利用pip工具使用如下指令安裝Django:

pip install django
           

該指令将自動下載下傳Django最新版本并進行安裝。安裝完成後可以進入Python,通過進入Python環境驗證Django是否安裝成功:

# 驗證Django是否安裝成功
import django
print(django.VERSION)
           

如下圖,Django的版本是2.2.4

Django學習筆記(一)

如果讀者想安裝其他版本的Django,可以指定版本号:

pip install django==1.11.7

如果使用pip install安裝庫比較慢,可以用豆瓣的鏡像:

pip install django==1.11.7 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
           

建立項目

在進行Django開發之前要先建立一個Django項目,django-admin startproject 站點名稱,在控制台中敲指令如下:

django-admin startproject mysite
           

該指令會在目前目錄下建立一個子目錄mysite,這個子目錄就是這個項目的名稱,并在其中生成了Django開發的預設檔案,mysite的目錄内容如下:

Django學習筆記(一)

這幾個預設生成的檔案解釋如下:

  • manage.py:是Django用于管理本項目的指令行工具,之後進行站點運作、資料庫自動生成、靜态檔案收集等都要通過該檔案完成。
  • 内層mysite/ 目錄中包含了本項目的實際檔案,同時因為其中包含__init__.py 檔案,是以該目錄也是一個Python包。
  • mysite/init.py: 告訴Python該目錄是一個Python包,其中暫無内容。
  • mysite/settings.py:Django的項目配置檔案。預設時,在其中定義了本項目引用的Django元件、Django項目名等。在之後的開發中,還需在其中配置資料庫參數、導入的其他Python包等資訊。
  • mysite/urls.py:維護項目的URL路由映射,即定義用戶端通路的URL由哪一個Python子產品解釋并提供回報。在預設情況下,其中隻定義了“/admin”即管理者站點的解釋器。
  • mysite.wsgi.py:定義WSGI的接口資訊,用于其他Web伺服器內建,一般本檔案在生成後無須改動。

建立應用

每個Django項目可以包含多個Django應用。進入剛剛建立的的項目目錄下,python manage.py startapp 應用名稱,然後建立應用的指令如下:

cd mysite
python manage.py startapp app
           

指令完成後會在項目目錄中建立如下目錄及檔案結構:

Django學習筆記(一)

對其中的檔案功能解析如下。

  • migrations包:用于在之後定義引用遷移功能。
  • init.py:其中暫無内容,該檔案的存在使得app 成為一個Python包
  • admin.py:管理站點模型的聲明檔案,預設為空。
  • apps.py:應用資訊定義檔案。在其中生成了類AppConfig,該類用于定義應用名等Meta資料。
  • models.py:添加模型層資料類的檔案。
  • tests.py:測試代碼檔案。
  • views.py:定義URL響應函數。

啟動服務

在我們建立完mysite項目後,也就有了一個網站的基本架構,可以利用如下指令:

python manage.py runserver