django是乙個千篇一律的python web框架,受ruby on rails的啟發,並使用許多相同的隱喻使web開發變得輕鬆快捷。 django滿載且靈活,已成為python使用最廣泛的web框架之一。
django實際上包含了構建任何大小的web應用程式所需的所有內容,並且它的普及使得查詢示例和針對各種情況的幫助變得容易。 另外,django提供了一些工具,使您的應用程式可以優雅地演化和新增功能,並遷移其資料模式(如果有)。
[ 什麼是python?您需要知道的一切 。•教程: 如何開始使用python 。• 每個python開發人員都有6個基本庫 。• 為什麼應該使用python進行機器學習 。|]
django還因其複雜性而聞名,它具有許多元件並需要大量的「幕後」配置。 實際上,您可以以相對較短的順序啟動並執行乙個簡單的應用程式,然後根據需要從那裡擴充套件其功能。
在本指南中,我們將逐步建立乙個基本的django 2.0應用,並簡要介紹它為web開發人員提供的最關鍵的功能。
如果您有使用django的1.x早期版本的經驗,這些是要意識到的最重要的重大更改:
還有許多其他向後不相容的更改 ,但這是最重要的兩個,特別是在啟動新專案時。
要安裝django 2.0,您將需要python 3.4或更高版本。 然後,最簡單的安裝django的方法是通過python的pip
實用程式:
pip install django
這將安裝核心django庫和用於管理django專案的django-admin
命令列實用程式。
如果要併排使用多個版本的django,請建立乙個虛擬環境 ,在其中安裝所需的django版本,並將其用於相關的django專案。
請注意,您無需使用虛擬環境通過單個django例項建立多個專案 。 您只需要他們對不同專案使用django 框架的不同版本。
django例項分為兩層: 專案和應用程式 。
要從頭開始建立新的django專案,請輸入要儲存該項目的目錄並鍵入:
django-admin startproject
其中,是專案的名稱,也是專案儲存的子目錄的名稱。 確保選擇乙個不太可能與python或django內部使用的名稱衝突的名稱。 像
myproj
這樣的名稱myproj
可以正常工作。
結果目錄應包含乙個manage.py
檔案(該檔案用於從命令列控制該應用程式的行為)以及另乙個包含以下檔案的子目錄(也具有專案名稱):
在進行任何其他操作之前,請測試專案以確保其正常執行。 從包含專案的manage.py
檔案的目錄中的命令列,執行:
python manage.py runserver
需要注意的是開發web伺服器不應該被用於乙個django專案向社會公布。 它無法擴充套件以處理所需的流量。
接下來,我們需要在該專案中建立乙個應用程式。 導航到manage.py
目錄,然後發出以下命令:
『django.contrib.admin』,
...django應用遵循基本的處理請求的模式:
為了了解所有這些部分如何組合在一起,讓我們修改示例應用程式的預設路由以返回自定義訊息。
在urlpatterns
列表中的urls.py
中定義了路由。 如果開啟示例urls.py
,您將看到已經預定義的urlpatterns
:
urlpatterns = [
path(『admin/』, admin.site.urls),
]
path
函式(乙個內建的django)以路由和view函式作為引數,並生成對url路徑的引用。 預設情況下,django建立乙個用於站點管理的admin
路徑,但是我們需要建立自己的路由。
新增另乙個條目,以使整個檔案如下所示:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path(『admin/』, admin.site.urls),
]
from django.urls import path
from . import views
urlpatterns = [
path(『』, views.index)
]
django在每個url的開頭加上乙個斜槓,因此要指定站點的根(/
),我們只需提供乙個空白字串作為url。
return httpresponse(「hello, world!」)django.http.httpresponse
是django內建的,可從提供的字串生成http響應。 注意,request
,它包含了乙個輸入http請求中的資訊,必須作為第乙個引數的檢視函式進行傳遞。
django可以接受包含變數作為其語法一部分的路由。 假設您要接受格式為year/
url。 您可以通過將以下條目新增到urlpatterns
來urlpatterns
:
path(『year/』, views.year)
然後將通過諸如year/1996
,year/2010
等之類的途徑呼叫view函式views.year
,並將變數year
作為引數傳遞給views.year
。
def year(request, year):
return httpresponse(『year: {}』.format(year))
早期版本的django的路由語法更加複雜且難以解析。 如果仍然需要使用舊語法新增路由(例如,為了與舊django專案向後相容),則可以使用django.urls.re_path
函式來新增路由。
django的內建模板語言可用於從資料生成網頁。
year: }
模板中雙大括號內的任何值都將被視為變數。 其他所有內容均按字面意義處理。
data =您可以對django模板中的資料執行的處理量有一定限制。 django的理念是盡可能地將表示和業務邏輯分開。 因此,您可以遍歷乙個可迭代的物件,並且可以執行if/then/else
測試,但是不贊成在模板中修改資料。
例如,可以使用以下方式對簡單的「 if」測試進行編碼:
21st century year: }
pre-21st century year: }
標記界定了可以用django模板語言執行的**塊。
如果要使用更複雜的模板處理語言,則可以交換其他語言,例如jinja2或mako。 django包括針對jinja2的後端整合 ,但是可以使用任何返回字串的模板語言,例如,通過在httpresponse
物件中返回該字串,就像我們的」hello, world!」
路線。
我們在這裡看到的內容僅涵蓋django應用程式的最基本元素。 django包括許多其他可以在web專案中使用的元件。 所有這些都值得單獨詳細討論,但是我將為您提供簡要概述:
from:
python框架Django2教程(一)
linux python3 安裝django pip install django 2.1 檢查django是否安裝成功 1.建立專案 django admin startprojest helloworld 2.初步執行框架 python manger.py runserver 0.0.0.0 8...
Django 2 第乙個django應用
3.在templates中新增網頁index.html 4.view中,def index request return render request,index.html 5.urls.py中,from ganji.views import index url r index index 6.ht...
Django 2 框架的建立流程
1.django安裝 pip3 install django2.建立乙個project 4.啟動專案 python manage.py runserver 127.0.0.1 80905.開啟瀏覽器 這時候只是測試的工程檔案 還要更改一下setting檔案中的配置 django.contrib.ad...