python django教程_Django快速入门
>>> import django
>>> print(django.get_version())
1.9.1
這就算安裝完成了。接下來我們要進入開發的第一步。
開發第一個Django app
讓我們開始創建一個Web應用程序并一步步地學習。
在本教程中,將引導您完成創建一個基本的民意調查 (poll) 的應用。
這將包括兩部分:
一個公共網站,讓人們在上面查看投票和投票。
一個網站管理,您可以添加,更改和刪除投票。
假設你的 Django 已經安裝完成。可以確認 Django?安裝和版本,運行以下命令:
$ python -c "import django; print(django.get_version())"
如果安裝 Django,你應該看到安裝的版本。如果還未安裝會得到一個錯誤提示:?“No module named django”。
本教程是使用 Django1.9和Python2.7或更高版本編寫的。如果Django的版本不匹配,您可以通過使用版本切換 Django 版本,或者 Django 更新到最新版本。如果還在使用Python2.7,則需要稍微調整代碼,如在注釋中描述。
創建一個項目
如果第一次使用Django,必須采取一些初始設置。也就是說,需要自動生成一些代碼,建立一個Django項目?-?設置Django實例的集合,包括數據庫配置,Django 特定選項和特定應用程序設置。
在命令行,cd 到你想要存儲代碼目錄,比如,這里我創建項目的地方是:C:\Python7\ ,然后運行以下命令:
C:\python27>django-admin startproject mysite
這將在 C:\python17下創建 mysite 目錄。如下圖:
讓我們來看看 startproject 命令創建的目錄結構:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
對上面這些文件的簡要說明:
在?mysite/ 根目錄上級僅僅是一個容器項目。對于Django它的名字隨意,可以將其重命名為任何你喜歡的。
manage.py:?一個命令行工具,可以讓您以各種方式與Django項目進行交互。你可以閱讀所有關于manage.py 在?django-admin和manage.py 的細節。
內部?mysite/目錄是實際項目的Python包。它的名字是你需要使用導入里面的任何Python包的名稱(例如mysite.urls)。
mysite/__init__.py:?一個空文件,該文件告訴Python這個目錄應該作為一個Python包。
mysite/settings.py:?設置/配置這個Django項目。?Django的設置,會告訴你如何設置工作。
mysite/urls.py:?該 URL 聲明這個Django項目; 類似Django網站的一個“表的內容”。
mysite/wsgi.py:?一個WSGI兼容Web服務器的入口點,以滿足您的項目需要。
開發服務器
讓我們來驗證你的Django項目工程。更改到外mysite的目錄,如果你有沒有準備好,并運行以下命令:
C:\python27\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.
January 24, 2016 - 15:50:53
Django version 1.9, 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框架,而不是Web服務器的業務。)
現在,服務器的運行,請使用Web瀏覽器訪問:http://127.0.0.1:8000/。會看到一個“Welcome?to?Django”頁面。這表示它安裝成功了!
默認情況下 runserver 命令啟動就在內部IP開發服務器的端口 8000。
如果你想改變服務器的端口,將它作為命令行參數。例如,下面這個命令會在服務器8080端口運行:
$ python manage.py runserver 8080
如果想改變服務器的IP,傳遞給它端口。(如果你想暴露在其他計算機或網絡上工作)所有公網IP聽,使用以下方法:
$ python manage.py runserver 0.0.0.0:8000
創建Polls app
現在的“project”?-?設置完畢后就開始可以工作了。
在Django寫的每個應用程序包含一個Python包,遵循一定的約定。?Django提供了一個實用程序,自動生成一個應用程序的基本目錄結構,這樣就可以專注于寫代碼而不是建立目錄。
應用程序可以在Python路徑中的任何地方。在本教程中,我們將創建投票程序在 manage.py 文件同級目錄中,以便它可以被導入作為自己的頂層模塊,而不是 mysite 的一個子模塊。
在創建應用程序前,確保你在 manage.py?同一個目錄中并鍵入以下命令:
C:\python27\mysite>python manage.py startapp polls
這將創建一個目錄polls,這是目錄結構是這樣的:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
這個目錄結構中的?poll?應用程序。
編寫視圖代碼
現在我們來編寫的第一個視圖。打開文件polls/views.py,把下面的Python代碼放入里面:
polls/views.py
fromdjango.httpimport HttpResponse defindex(request): return HttpResponse("Hello, world. You're at the polls index.")
這是 Django 最簡單的視圖。要調用這個視圖還需要把它映射到一個URL?-?對于這一點,我們需要 URL 配置。
要在polls?目錄創建URL配置,創建一個名為?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
fromdjango.conf.urlsimport url from.import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
下一步驟是讓 polls.urls 模塊指向該ROOT_URLCONF。在?mysite/urls.py 中,?增加導入?django.conf.urls.include?并插入?include()?在URL模式列表中,所以這里有:
mysite/urls.py
fromdjango.conf.urlsimport include, url fromdjango.contribimport admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
現在已經連接索引視圖到URL配置。讓我們來驗證它結果,運行以下命令:
C:\Python27\mysite> python manage.py runserver
在瀏覽器中打開http://localhost:8000/polls/,應該看到如下文字顯示:?“Hello, world. You’re at the polls index.”,?在?index?視圖中所定義。
url()函數傳遞四個參數,兩個必需的:regex?和?view,以及兩個可選:kwargs?和?name。
url()?參數: regex
術語“regex”是一種常用的縮寫形式,意思是“正則表達式”,這是一個語法字符串匹配模式,或在我們的示例中是URL模式。Django從第一個正則表達式開始,并使得其遍歷列表,比對每一個正則表達式的請求的URL,直到它找到一個匹配。
請注意,這些正則表達式不搜索GET和POST參數,或者域名。例如,在一個請求https://www.example.com/myapp/,?URLconf 會尋找myapp/.在一個請求?https://www.example.com/myapp/?page=3,?URLconf 還將尋找?myapp/.
如果需要使用正則表達式的幫助,請參見維基百科的條目和?re模塊的文檔。?然而在實踐中,你并不需要成為正則表達式的專家,因為只需要知道如何捕捉簡單的模式。事實上,復雜的正則表達式可以查找性能較差,所以你可能不依賴于正則表達式的全部功能。
最后,一個關于性能的事項需要了解:這些正則表達式編譯首次URL配置模塊被加載。它們是超級的快(只要查找東西不是太復雜 - 如上所述)。
url()?參數: view
當 Django 找到正則表達式匹配,Django調用指定的視圖函數,使用?HTTP 請求對象作為第一個參數,從正則表達式“捕獲”的其他參數作為其它的值。?正則表達式使用簡單的捕捉,值傳遞是通過位置參數;如果使用名為捕捉,值傳遞關鍵字參數。我們將給出一個例子。
url()?參數: kwargs
任意關鍵字參數可以通過在字典中的目標視圖。在本教程我們不打算使用Django的這一特點。
url()?argument: name
命名網址可以參考它,明確地從其他地方在Django?-?尤其是模板。?這種強大的功能可讓您進行全局更改到項目的URL模式,而只需要修改一個文件。接下來我們學習如何在 Django 使用數據功能。
快速入門系列教程:
總結
以上是生活随笔為你收集整理的python django教程_Django快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chrome谷歌浏览器不能输入中文问题
- 下一篇: 学计算机之路写一篇作文,我的学吉他之路作