Python安裝 想要使用Django,前提是要安裝好Python軟體及運行環境,因為Django是基於Python寫的。具體Python安裝過程詳見: "Python3 環境搭建" 查看安裝的Python版本 shell $python m pip install django i https:/ ...
Python安裝
想要使用Django,前提是要安裝好Python軟體及運行環境,因為Django是基於Python寫的。具體Python安裝過程詳見:Python3 環境搭建
查看安裝的Python版本
$python -V
Python 3.7.6
python -m 參數釋義(將庫中的python模塊用作腳本去運行),以下是摘要網上資料,詳見:Python 中 -m 的典型用法、原理解析與發展演變
還有一種常常被人忽略的場景:“python -m pip install 包名”。我們可能會習慣性地使用“pip install 包名”,或者做了版本區分時用“pip3 install 包名”,總之不在前面用“python -m”做指定。但這種寫法可能會出問題。
很巧合的是,在本月初(2019.11.01),Python 的核心開發者、第一屆指導委員會 五人成員之一的 Brett Cannon 專門寫了一篇博客《 Why you should use "python -m pip" 》,提出應該使用“python -m pip”的方式,並做了詳細的解釋。
他的主要觀點是:在存在多個 Python 版本的環境中,這種寫法可以精確地控制三方庫的安裝位置。例如用“python3.8 -m pip”,可以明確指定給 3.8 版本安裝,而不會混淆成其它的版本。
pip包管理工具
pip 是一個現代的,通用的 Python 包管理工具。提供了對 Python 包的查找、下載、安裝、卸載的功能。
在安裝Python的時候,如果勾選了安裝pip的話,程式會自動把pip工具安裝上,如果在安裝Python的時候沒有勾選安裝pip,則需要手動安裝pip工具,安裝過程詳見:Python pip 安裝與使用
easy_install、pip以及pip3的區別
easy_install是python2下很早版本的包管理工具,pip是python2下的easy_install改進版,而pip3是針對python3下的包管理工具,如果電腦上只安裝了python3,則pip和pip3工具沒有區別。
查看已經安裝的pip版本
$python -m pip -V
pip 19.2.3 from D:\Program\Python37\lib\site-packages\pip (python 3.7)
安裝第三方包
$python -m pip install package_name # 預設安裝最新的包
$python -m pip install package_name==version # 安裝指定version版本的包
$python -m pip install package_name -i 包的源地址 # 通過-i指定包下載的源
查看某個已安裝包
$python -m pip show --files package_name
檢查哪些包需要更新
$python -m pip list --outdated
Package Version Latest Type
--------------------- ---------- ---------- -----
asgiref 3.2.3 3.2.7 wheel
certifi 2019.11.28 2020.4.5.1 wheel
pip 19.3.1 20.0.2 wheel
setuptools 41.2.0 46.1.3 wheel
升級第三方包
$python -m pip install --upgrade package_name
卸載第三方包
$python -m pip uninstall package_name
升級pip工具
$python -m pip install --upgrade pip
什麼是Django
Django是一個由Python編寫的具有完整架站能力的開源Web框架。使用Django,只要很少的代碼,Python的程式開發人員就可以輕鬆地完成一個正式網站所需要的大部分內容,併進一步開發出全功能的Web服務。
MVC框架和MTV框架
做過web開發的同學,尤其是java語言web的開發,對MVC框架設計應該不是陌生的, 這也是架構模式中的一種,通過三個不同的層面結構進行設計,即M表示Model(模型)層,V表示View(視圖)層,C表示Control(控制)層,如下圖所示:
而Django作為web開發的構架,也有自己的構架設計模式,Django框架的設計模式借鑒了MVC框架的思想,也是分成三部分,不同之處在於它設計的三部分為:Model(模型)層、Template(模板)層和View(視圖)層,也就是MTV框架,如下圖所示:
-
Model(模型):負責業務對象與資料庫的對象(ORM)
-
Template(模板):負責如何把頁面展示給用戶
-
View(視圖):負責業務邏輯,併在適當的時候調用Model和Template
此外,Django還有一個urls分發器,它的作用是將一個個URL的頁面請求分發給不同的View處理,View再調用相應的Model和Template
其實Django是一個非常豐富的web構架,集成了很多的內容和組件,基本上可以包含你要開發所涉及到的所有內容,更多詳情請自行閱讀: Django官網文檔
好了,知道了Django基本內容後,是不是躍躍欲試了呢,那咱就開始Django環境的安裝及項目的創建吧。
Django環境安裝
在通過本文一開始的內容,假設現在你已經熟悉並安裝好了Python環境及pip工具,如果你還沒有搞定以上的環境,請自行百度配置好所需要的環境,以下會通過兩種方式介紹怎樣創建一個Django項目應用,Come on!!!
在創建項目應用之前,咱必須先安裝django程式,通過pip工具進行安裝,這裡選擇的是2.2版本,如下所示:
$python -m pip install django==2.2.12 -i https://pypi.douban.com/simple # 下載指定版本
如果不想指定版本,可以直接使用以下命令下載最新的版本,如下所示:
$python -m pip install django -i https://pypi.douban.com/simple # 下載目前最新的版本
如果你還不想指定源也是可以的,但要承受安裝過程受網路影響所帶來的等待時間,尤其是安裝比較大的程式,命令如下所示:
$python -m pip install django # 從官網上下載目前最新的版本
提示:這裡為什麼選擇安裝2.2的版本,而不選擇目前最新的3.0版本,因為django每個版本都會有對應的支持周期,而我們也不想在實際項目中因為django版本影響帶來更多的維護或升級,所以就選擇了目前的LTS(long-term support)版本,更多版本信息請參閱:Django官網下載
在安裝成功後,在python程式目錄中會多出來django-admin命令/程式,也就是咱們後面要用來創建項目應用的命令,如下所示:
創建項目之命令行操作
創建項目
首先選擇一個自己比較喜歡的文件夾存放創建的項目應用,比如我這裡選擇E:\works目錄,打開cmd工具,切換到工作目錄中,如圖所示:
在工作目錄中,輸入以下命令即可創建一個django目錄,假如你的項目名稱是:myproject
$django-admin startproject myproject # 創建一個名稱為myproject的項目
操作完成後,沒有任何提示內容,所謂沒有信息就是最好的結果,這時咱們再通過tree -F
命令顯示工作目錄的結構,如圖所示:
通過以上操作,咱就完成了一個沒有任何內容和功能的項目的創建,那怎麼來運行這個項目呢,不急,往下看。
啟動項目
在cmd命令提示界面下,切換到項目所在的根目錄,輸入以下命令即可運行項目,如下圖所示:
$cd myproject
$python manage.py runserver # 啟動服務,監聽預設地址和埠
提示:這裡要記住manage.py管理命令是位於項目的根目錄中,如果在創建項目後沒有切換進項目目錄,就會出現這樣的錯誤信息:python: can't open file 'manage.py': [Errno 2] No such file or directory
在啟動項目之後,我們打開瀏覽器輸入以上的服務地址和埠, 就能看到django預設的項目界面,是不是很開心O(∩_∩)O~~
那有同學可能會問了,我們可不可以使用別的埠,比如習慣用8080埠了,答案是肯定的,在啟動項目的時候指定下埠即可,如下所示:
$python manage.py runserver 8080 # 啟動服務,監聽8080埠
當然最終我們的項目應用是要被別人能夠訪問的,總不能只能通過自己的本機客戶端來訪問對吧,這個時候在啟動項目的時候修改指定服務所在主機即可的,如下所示:
$python manage.py runserver 0.0.0.0:8080 # 啟動服務,監聽當前主機的地址和8080埠
再分別打開瀏覽器訪問地址看看效果,這裡就不演示了,O(∩_∩)O哈哈~
創建APP
項目和APP的關係
project相當於學校,app相當於學校的學院
也就是說,project可以包含多個app
為什麼要用APP
方便在一個大的Django項目中,管理實現不同的業務功能,從開發上也可以分離,一個同事負責一個app業務功能的開發
好了,說了這麼多,那到底怎麼創建app呢,其實也很簡單的,還記得怎麼啟動項目嗎,再打開cmd命令提示界面切換到項目根目錄,比如我們要創建一個登錄相關功能的app,名稱為:login
,則輸入以下命令:
$python manage.py startapp login # 創建一個名為login的app應用
從上圖中可以看出在項目根目錄下,多了一個login的子目錄及相關的py
文件,這裡麵包含了框架中的Model和View層,這時候如果再次啟動項目,你會發現沒什麼不一樣,因為我們沒有添加任何的應用相關的功能,後續會有詳細的介紹。
註冊APP
要想正常使用app,必須在settings.py
文件中進行app應用的註冊,配置如下:
INSTALLED_APPS = [
...
'login.apps.LoginConfig' # 新創建名稱為login的APP應用,推薦寫法
]
創建項目之工具操作
通過以上的操作,咱們已經熟悉了怎樣創建django項目並啟動,但這些操作都是比較簡易的,如果後續進行開發,也這樣通過命令和編輯相關文件添加內容,就顯的很麻煩了,這時就需要找一個比較好的集成開發工具,這裡選擇的是:PyCharm,下麵就看看如何在PyCharm中來創建項目和啟動服務,Go on!!!
這裡假設你已經正確安裝好了PyCharm工具,如果還沒安裝配置好,同樣請自行百度進行補課了。。。
創建項目
打開運行PyCharm工具,如果是首次打開的話會提示你是要創建項目還是打開現有的項目,咱們就選擇創建新項目好了,如圖所示:
在打開的新建項目界面,按要求輸入項目名稱,比如:myproject
,存放目錄還是E:\works
,這裡根據你實際的情況填寫即可,同時這裡選擇通過現有的解釋器,這裡暫不使用虛擬環境,如果你想瞭解虛擬環境及使用的話,可以點擊閱讀:Python虛擬環境常用工具使用
再點擊展開新建項目的More Settings
選項,裡面有輸入對應的模板(Template)的名稱和新建app的名稱,也就是如果你在這裡輸入了模板和app的名稱,PyCharm會自動幫你創建,如圖所示:
點擊Create
按鈕,等待項目創建完成,再通過PyCharm查看創建完成的項目結構,如下圖所示:
啟動項目
通過PyCharm工具創建的項目,怎麼啟動呢,這很簡單的,點擊項目名稱邊上的綠色三角形即可,會在工具下麵多出一個視窗顯示啟動服務相關的輸出信息,如下圖所示:
這個時候再通過瀏覽器去訪問,效果和命令行創建項目的效果是一樣一樣的,如下所示:
如果我想像命令行一樣,指定不同的服務地址和埠來啟動呢,同樣也可以的,點擊項目名稱,展開菜單,點擊Edit Configurations...
進行項目參數配置,在裡面可以指定IP地址和埠號,如下圖所示:
創建APP
通過以上PyCharm工具在創建項目的時候,可以同步指定創建一個app,那麼如果通過PyCharm再創建其他的app,怎麼操作呢,通過選擇Tools
->Run manage.py Task...
,在彈出的命令提示符下,輸入startapp rabc
,其中rabc
是app名稱,如下圖所示:
說白了,PyCharm創建應用,也是通過集成了底層的操作命令執行的,這時再看看最終的項目結構,會發現多了一個rabc
子目錄及相關py
文件,如圖所示:
註冊APP
同樣的,如果手工新創建了一個app應用,也是要在settings.py
中進行註冊的,當然如果通過PyCharm進行創建的app,工具會自動註冊,如下所示:
INSTALLED_APPS = [
...
'login.apps.LoginConfig', # Pycharm創建app時自動註冊的
'rbac.apps.RbacConfig' # 手工創建的需要手工註冊添加
]
小結
總結一下以上我們學習過的知識點:
- Django是一個web構架,採用了MTV的設計模式,M(模型)、T(模板)、V(視圖)
- 創建Django項目命令:
django-admin startproject <項目名稱>
- 啟動Django項目命令:
python manage.py runserver
服務地址-可省略
服務埠-可省略
- 創建Django app應用命令:
python manage.py startapp <app名稱>