特別說明:本文是針對Django 1.11和Python 3或更高版本編寫的。若是Django版本不匹配,可跳過該文章,或者將您的Django更新到最新版本。python
1、Django安裝步驟linux
一、安裝版本:正則表達式
Django1.11.1django
Django 下載地址:https://www.djangoproject.com/download/瀏覽器
二、支持的PYTHON版本服務器
django1.11之後再也不支持python2.7 ,因此必須是python3版本上網絡
三、安裝python3+app
Python 下載地址:https://www.python.org/downloads/ python2.7
四、安裝PYTHON3+ide
安裝Python你只須要下載python-x.x.x.msi文件,而後一直點擊"Next"按鈕便可。
安裝完成後你須要設置Python環境變量。 右擊計算機->屬性->高級->環境變量->修改系統變量path,添加Python安裝地址,本文實例使用的是C:\Python34,你須要根據你實際狀況來安裝。
若是是linux系統請下載Python-3.x.x.tgz安裝包自行安裝。
五、Django 安裝
A、×××安裝
將Django 壓縮包解壓並和Python安裝目錄放在同一個根目錄,進入 Django 目錄,執行python setup.py install,而後開始安裝,Django將要被安裝到Python的Lib下site-packages。
C:\Python34\Lib\site-packages
而後是配置環境變量,將這幾個目錄添加到系統環境變量中: C:\Python33\Lib\site-packages\django;C:\Python33\Scripts。 添加完成後就可使用Django的django-admin.py命令新建工程了
檢查是否安裝成功
python -m django --version 或者,
>>> import django
>>> print django.get_version()
若是Django已經安裝,你應該看到安裝的版本。 若是尚未安裝,你會看到一個「No module named django」的錯誤。
B、pip命令在線安裝
第一步須要安裝pip命令
下載pip命令,解壓切換到pip文件夾,python setup.py install安裝,而後就可使用pip命令了。
pip install Django==1.11.1
六、關於如何刪除舊版本的Django並安裝一個新的
若是要從之前的版本升級Django的安裝,則須要在安裝新版本以前卸載舊的Django版本
若是之前使用pip或easy_install安裝了Django,則再次使用pip或easy_install安裝會自動處理舊版本,因此你不須要本身作。
若是您之前使用python setup.py 安裝安裝了Django,卸載操做就像刪除django目錄從您的Python site-packages。
查找
$ python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"
安裝就到此結束了。
2、建立一個project
一、Creating a project
django-admin startproject mysite
注意:您將須要避免在內置Python或Django組件後命名項目。特別是,這意味着你應該避免使用像djangoDjango自己這樣的名字 (或者test與內置的Python包衝突)
二、mysite項目中文件說明
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
外部mysite/根目錄只是一個項目的容器。它的名字與Django無關; 您能夠將其重命名爲您喜歡的任何內容。
manage.py:一個命令行實用程序,可讓您以各類方式與此Django項目進行交互。您能夠閱讀django-admin和manage.pymanage.py中的全部詳細信息 。
內部mysite/目錄是您的項目的實際Python包。它的名字是您須要用來導入其中的任何內容的Python包名稱(例如mysite.urls)。
mysite/__init__.py:一個空的文件,告訴Python這個目錄應該被認爲是一個Python包。若是您是Python初學者,請閱讀官方Python文檔中有關軟件包的更多信息。
mysite/settings.py:此Django項目的設置/配置。 Django設置會告訴你全部關於設置的工做原理。
mysite/urls.py:該Django項目的URL聲明; 您的Django動力網站的「目錄」。您能夠在URL調度程序中閱讀有關URL的更多信息。
mysite/wsgi.py:WSGI兼容的Web服務器爲您的項目提供服務的入口點。有關詳細信息,請參閱如何使用WSGI進行部署。
三、開發服務器
咱們來驗證您的Django項目的做品。更改成外部mysite目錄,若是您尚未,並運行如下命令:
$ python manage.py runserver
啓動信息
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
May 20, 2017 - 15:50:53
Django version 1.11, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
您已經開始使用Django開發服務器,這是一個純粹以Python編寫的輕量級Web服務器。咱們將其與Django結合在一塊兒,所以您能夠快速開發,而無需處理配置生產服務器(如Apache)。
如今服務器正在運行,請使用Web瀏覽器訪問http://127.0.0.1:8000/。您會看到一個「歡迎來到Django」頁面,在愉快的,淺藍色的粉彩中。有效!
改變端口
默認狀況下,該runserver命令在端口8000的內部IP上啓動開發服務器。
若是要更改服務器的端口,請將其做爲命令行參數傳遞。例如,此命令啓動端口8080上的服務器:
$ python manage.py runserver 8080
若是要更改服務器的IP,請將其與端口一塊兒傳遞。例如,要監聽全部可用的公共IP(若是您正在運行Vagrant或想要在網絡上的其餘計算機上炫耀您的工做),請使用:
$ python manage.py runserver 0:8000
0是0.0.0.0的快捷方式。開發服務器的完整文檔能夠在參考文獻中找到runserver。
自動重裝 runserver
開發服務器根據須要自動爲每一個請求從新加載Python代碼。您不須要從新啓動服務器以使代碼更改生效。可是,一些操做(如添加文件)不會觸發從新啓動,所以在這些狀況下您必須從新啓動服務器。
四、Creating the Polls app
如今,您的環境 - 一個「項目」 - 已經創建起來,您將開始作工做。
您在Django中編寫的每一個應用程序都包含遵循必定約定的Python包。Django自帶一個實用程序,能夠自動生成應用程序的基本目錄結構,所以您能夠專一於編寫代碼而不是建立目錄
您的應用程序能夠生活在Python路徑的任何位置。在本教程中,咱們將在您的manage.py 文件旁邊建立咱們的投票應用程序,以便它能夠做爲本身的頂級模塊導入,而不是子模塊mysite。
要建立您的應用程序,請確保您與目錄位於同一目錄,manage.py 並鍵入如下命令:
$ python manage.py startapp polls
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
五、Write your first view
咱們來寫第一個見解。打開文件polls/views.py 並放入如下Python代碼:
polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
這是Django中最簡單的視圖。要調用視圖,咱們須要將其映射到一個URL , 爲此,咱們須要一個URLconf。
要在polls目錄中建立一個URLconf,建立一個名爲urls.py。您的應用目錄應該以下所示:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
在polls/urls.py文件中包含如下代碼:
polls/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
下一步是將根URLconf指向polls.urls模塊。在 mysite/urls.py添加一條import用於django.conf.urls.include和插入include()的urlpatterns列表:
mysite/urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
該include()函數容許引用其餘URLconfs。請注意,該include()函數的正則表達式 沒有$(字符串匹配字符),而是尾部的斜槓。每當Django遇到 include()時,它會排除與該點匹配的任何部分,並將剩餘的字符串發送到隨附的URLconf進行進一步處理。
背後的想法include()是使即插即用的URL變得容易。因爲polls是在本身的URLconf(polls/urls.py)中,它們能夠被放置在「/ polls /」下面,或者在「/ fun_polls /」下面,或者在「/ content / polls /」或其餘路徑根目錄下,工做。
六、什麼時候使用 include()
include()當您包含其餘網址格式時,您應始終使用。 admin.site.urls是惟一的例外。
不符合你的見解?
若是您只是看到,include(admin.site.urls)而 admin.site.urls您可能正在使用與本教程版本不符的Django版本。您將須要切換到較舊的教程或較新的Django版本。
您如今已將index視圖鏈接到URLconf中。讓它驗證它的工做,運行如下命令:
$ python manage.py runserver
在瀏覽器中轉到http:// localhost:8000 / polls /,您應該看到文本「 Hello,world ***」。
七、url()函數傳遞四個參數,兩個必需:regex和view,和兩個可選:kwargs,和name。在這一點上,值得審查這些論據。
url()參數:正則表達式
術語「正則表達式」是一種經常使用的短格式,意思是「正則表達式」,它是用於匹配字符串中的模式的語法,或者在這種狀況下是URL格式。Django從第一個正則表達式開始,並將其放在列表中,將請求的URL與每一個正則表達式進行比較,直到找到匹配的一個。
請注意,這些正則表達式不搜索GET和POST參數或域名。例如,在請求中 https://www.example.com/myapp/,URLconf將尋找myapp/。在請求中https://www.example.com/myapp/?page=3,URLconf也會查找myapp/。
若是您須要正則表達式的幫助,請參閱re模塊文檔。實際上,您不須要是正則表達式的專家,由於您只須要知道如何捕獲簡單的模式。實際上,複雜的正則表達式的查找性能會不好,因此你可能不該該依靠正則表達式的所有功能。
最後,一個性能說明:這些正則表達式是第一次加載URLconf模塊時被編譯。它們超級快
url()參數:視圖
當Django找到一個正則表達式匹配時,Django會調用指定的視圖函數,其中一個HttpRequest對象做爲第一個參數,任何來自正則表達式的「捕獲」值做爲其餘參數。若是正則表達式使用簡單的捕獲,則值做爲位置參數傳遞; 若是它使用命名捕獲,則值做爲關鍵字參數傳遞。咱們稍後會給出一個例子。
url()參數:kwargs
任意關鍵詞參數能夠在字典中傳遞到目標視圖。咱們不會在教程中使用Django的這個功能。
url()參數:名稱
命名您的URL可以讓您從Django其餘地方明確地引用它,特別是在模板中。這個強大的功能可以讓您全面更改項目的URL模式,同時只觸摸單個文件。
八、Django 官方文檔: