Django 創建第一個專案
本章我們將介紹Django 管理工具及如何使用 Django 來創建專案,第一個專案我們以 HelloWorld 來命令專案。
測試版本說明:
-
Python 3.6.0
-
Django 2.1.7
Django 管理工具
安裝 Django 之後,您現在應該已經有了可用的管理工具 django-admin。我們可以使用 django-admin 來創建一個專案:
我們可以來看下django-admin 的命令介紹:
$ django-admin Type 'django-admin help <subcommand>' for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver ……省略部分……
創建第一個專案
使用 django-admin 來創建 HelloWorld 專案:
django-admin startproject HelloWorld
創建完成後我們可以查看下專案的目錄結構:
$ cd HelloWorld/ $ tree . |-- HelloWorld | |-- __init__.py | |-- settings.py | |-- urls.py | `-- wsgi.py `-- manage.py
目錄說明:
- HelloWorld: 專案的容器。
- manage.py: 一個實用的命令行工具,可讓你以各種方式與該 Django 專案進行交互。
- HelloWorld/__init__.py: 一個空文件,告訴 Python 該目錄是一個 Python 包。
- HelloWorld/settings.py: 該 Django 專案的設置/配置。
- HelloWorld/urls.py: 該 Django 專案的 URL 聲明; 一份由 Django 驅動的網站"目錄"。
- HelloWorld/wsgi.py: 一個 WSGI 相容的 Web 伺服器的入口,以便運行你的專案。
接下來我們進入 HelloWorld 目錄輸入以下命令,啟動伺服器:
python3 manage.py runserver 0.0.0.0:8000
0.0.0.0 讓其他電腦可連接到開發伺服器,8000 為端口號。如果不說明,那麼端口號默認為 8000。
在流覽器輸入你伺服器的 ip(這裏我們輸入本機 IP 地址: 127.0.0.1:8000) 及端口號,如果正常啟動,輸出結果如下:
視圖和 URL 配置
在先前創建的 HelloWorld 目錄下的 HelloWorld 目錄新建一個 view.py 檔,並輸入代碼:
HelloWorld/HelloWorld/view.py 檔代碼:
接著,綁定 URL 與視圖函數。打開 urls.py 檔,刪除原來代碼,將以下代碼複製粘貼到 urls.py 檔中:
HelloWorld/HelloWorld/urls.py 檔代碼:
整個目錄結構如下:
$ tree . |-- HelloWorld | |-- __init__.py | |-- __init__.pyc | |-- settings.py | |-- settings.pyc | |-- urls.py # url 配置 | |-- urls.pyc | |-- view.py # 添加的視圖檔 | |-- view.pyc # 編譯後的視圖檔 | |-- wsgi.py | `-- wsgi.pyc `-- manage.py
完成後,啟動 Django 開發伺服器,並在流覽器訪問打開流覽器並訪問:
我們也可以修改以下規則:
HelloWorld/HelloWorld/urls.py 檔代碼:
通過流覽器打開 http://127.0.0.1:8000/hello,輸出結果如下:
注意:專案中如果代碼有改動,伺服器會自動監測代碼的改動並自動重新載入,所以如果你已經啟動了伺服器則不需手動重啟。
path() 函數
Django path() 可以接收四個參數,分別是兩個必選參數:route、view 和兩個可選參數:kwargs、name。
語法格式:path(route, view, kwargs=None, name=None)
route: 字串,表示 URL 規則,與之匹配的 URL 會執行對應的第二個參數 view。
view: 用於執行與正則運算式匹配的 URL 請求。
kwargs: 視圖使用的字典類型的參數。
name: 用來反向獲取 URL。
Django2. 0中可以使用 re_path() 方法來相容 1.x 版本中的 url() 方法,一些正則運算式的規則也可以通過 re_path() 來實現 。
from django.urls import include, re_path urlpatterns = [ re_path(r'^index/$', views.index, name='index'), re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'), re_path(r'^weblog/', include('blog.urls')), ... ]