Django建立第一個專案

hiekay發表於2019-01-17

本章我們將介紹Django 管理工具及如何使用 Django 來建立專案,第一個專案我們以 HelloWorld 來命令專案。

測試版本說明:

  • Python 2.7.15
  • Django 1.11.18
    • *

Django 管理工具

安裝 Django 之後,您現在應該已經有了可用的管理工具 django-admin.py。我們可以使用 django-admin.py 來建立一個專案:

我們可以來看下django-admin.py的命令介紹:

[root@solar ~]# django-admin.py
Usage: django-admin.py subcommand [options] [args]

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings=SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn`t provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath=PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on exception
  --version             show program`s version number and exit
  -h, --help            show this help message and exit

Type `django-admin.py help <subcommand>` for help on a specific subcommand.

Available subcommands:

[django]
    check
    cleanup
    compilemessages
    createcachetable
……省略部分……
    • *

建立第一個專案

使用 django-admin.py 來建立 HelloWorld 專案:

django-admin.py startproject HelloWorld

最新版的 Django 請使用 django-admin 命令:

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 目錄輸入以下命令,啟動伺服器:

python manage.py runserver 0.0.0.0:8000

0.0.0.0 讓其它電腦可連線到開發伺服器,8000 為埠號。如果不說明,那麼埠號預設為 8000。

在瀏覽器輸入你伺服器的ip及埠號,如果正常啟動,輸出結果如下:

image.png

檢視和 URL 配置

在先前建立的 HelloWorld 目錄下的 HelloWorld 目錄新建一個 view.py 檔案,並輸入程式碼:

HelloWorld/HelloWorld/view.py 檔案程式碼:

from django.http import HttpResponse
 
def hello(request):
    return HttpResponse("Hello world ! ")

接著,繫結 URL 與檢視函式。開啟 urls.py 檔案,刪除原來程式碼,將以下程式碼複製貼上到 urls.py 檔案中:

HelloWorld/HelloWorld/urls.py 檔案程式碼:

from django.conf.urls import url
 
from . import view
 
urlpatterns = [
    url(r`^$`, view.hello),
]

整個目錄結構如下:

$ 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 開發伺服器,並在瀏覽器訪問開啟瀏覽器並訪問:

image.png

我們也可以修改以下規則:

HelloWorld/HelloWorld/urls.py 檔案程式碼:

from django.conf.urls import url
 
from . import view
 
urlpatterns = [
    url(r`^hello$`, view.hello),
]

通過瀏覽器開啟 http://127.0.0.1:8000/hello,輸出結果如下:

image.png

注意:專案中如果程式碼有改動,伺服器會自動監測程式碼的改動並自動重新載入,所以如果你已經啟動了伺服器則不需手動重啟。

    • *

url() 函式

Django url() 可以接收四個引數,分別是兩個必選引數:regex、view 和兩個可選引數:kwargs、name,接下來詳細介紹這四個引數。

  • regex: 正規表示式,與之匹配的 URL 會執行對應的第二個引數 view。
  • view: 用於執行與正規表示式匹配的 URL 請求。
  • kwargs: 檢視使用的字典型別的引數。
  • name: 用來反向獲取 URL。

2 備註

  1. 啟動django後,不能訪問,報400錯誤。

    原因:沒有開啟允許訪問
    
    處理:編輯HelloWorld目錄下setting.py ,把其中的
    
    ALLOWED_HOSTS=[]改成ALLOWED_HOSTS=[`*`] ##* 表示任意地址。
    
  2. 如果是 Django >= 2.0 的版本,urls.py 的 django.conf.urls 已經被 django.urls 取代。

    django.urls 的用法參考如下:
    
from django.urls import path
from . import view

urlpatterns = [
    path(``, view.hello),
    path(`world/`, view.world)
]
其中最大的幾個改變如下:

**import url** 變成了 **import path**

如果是路徑,則須在路徑後加個 /

舊版 django 的用法:
from django.conf.urls import url
 
from . import view
 
urlpatterns = [
    url(r`^hello$`, view.hello),
]
新版的參考寫法:
from django.urls import path
from . import view

urlpatterns = [
    path(`hello/`, view.hello),
]


相關文章