Python Django 零基礎從零到一部署服務,Hello Django!全資料夾目錄和核心程式碼!

2023-07-04 12:00:26

在這篇文章中,我將手把手地教你如何從零開始部署一個使用Django框架的Python服務。無論你是一個剛開始接觸開發的新手,還是一個有經驗的開發者想要快速瞭解Django,這篇教學都會為你提供一條清晰的路徑。我們將從環境搭建開始,一步一步地建立一個可以處理GET和POST請求的服務,讓你能在實踐中理解Django的工作原理。

環境搭建(按需)

首先,我們需要建立一個適合開發的環境。在Python開發中,我們通常會使用虛擬環境來保持工作空間的整潔。以下是建立和啟用虛擬環境的步驟:

# 建立虛擬環境
python3 -m venv myenv

# 啟用虛擬環境(Linux/macOS)
source myenv/bin/activate

# 啟用虛擬環境(Windows)
.\myenv\Scripts\activate

在虛擬環境中,我們可以安裝Django:

pip install Django

這將會安裝Django並且保證它不會影響到系統中的其他Python專案。

建立專案

安裝完成後,我們可以使用Django的命令列工具來建立一個新的專案:

django-admin startproject myproject

這將會在當前目錄下建立一個名為myproject的資料夾,其中包含了管理Django專案所需的一些檔案。

建立應用

在Django中,一個專案可以包含多個應用,每個應用都是一個Python模組,包含了檢視、模型、模板、路由等一系列功能。我們首先建立一個名為myapp的應用:

cd myproject
python manage.py startapp myapp

這會在myproject目錄下建立一個myapp的目錄,包含了管理應用所需的一些檔案。

定義檢視

接下來,我們需要定義檢視來處理HTTP請求。在myapp/views.py檔案中,我們可以定義一個檢視來處理GET和POST請求:

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def hello(request):
    if request.method == 'GET':
        return JsonResponse({'message': 'Hello, Django!'})
    elif request.method == 'POST':
        return JsonResponse({'message': 'POST request received.'})

這裡,我們使用了JsonResponse來返回JSON響應,用@csrf_exempt來豁免CSRF保護,以便於我們在測試時能方便地傳送POST請求。

設定路由

檢視定義完成後,我們還需要設定路由來將URL對映到檢視。在myapp/urls.py

檔案中,我們可以定義路由:

from django.urls import path

from . import views

urlpatterns = [
    path('hello/', views.hello),
]

然後,在myproject/urls.py檔案中,我們需要包含myapp的路由:

from django.urls import include, path

urlpatterns = [
    path('myapp/', include('myapp.urls')),
]

這樣,存取/myapp/hello/URL時,就會呼叫我們定義的hello檢視。

啟動服務

最後,我們可以啟動Django服務來測試我們的應用:

python manage.py runserver

現在,你可以使用瀏覽器存取http://localhost:8000/myapp/hello/,你將看到返回的{"message": "Hello, Django!"}。你也可以使用工具(如curl或Postman)傳送POST請求,你將看到返回的{"message": "POST request received."}

恭喜你!你已經成功地從零開始部署了一個使用Django框架的Python服務。

專案資料夾和程式碼一覽

最後提供給大家,在我們的Django專案中,我們會看到以下檔案結構:

myproject/
├── manage.py
├── myapp/
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations/
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
└── myproject/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

在這個結構中,我們主要關注的是myapp/views.pymyapp/urls.py,和myproject/urls.py這三個檔案,因為這三個檔案是我們在部署Django服務中修改的主要檔案。

myapp/views.py

myapp/views.py檔案中,我們定義了一個hello檢視來處理GET和POST請求。完整的程式碼如下:

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def hello(request):
    if request.method == 'GET':
        return JsonResponse({'message': 'Hello, Django!'})
    elif request.method == 'POST':
        return JsonResponse({'message': 'POST request received.'})

myapp/urls.py

myapp/urls.py檔案中,我們定義了一個路由來將/hello/的URL對映到hello檢視。如果檔案不存在,請建立並新增以下內容:

from django.urls import path

from . import views

urlpatterns = [
    path('hello/', views.hello),
]

myproject/urls.py

myproject/urls.py檔案中,我們包含了myapp的路由,將所有以/myapp/開頭的URL對映到myapp的路由。完整的程式碼如下:

from django.urls import include, path

urlpatterns = [
    path('myapp/', include('myapp.urls')),
]

以上便是我們建立的Django服務的全部程式碼和檔案結構。

如有幫助,請多關注
個人微信公眾號:【Python全視角】
TeahLead_KrisChang,10+年的網際網路和人工智慧從業經驗,10年+技術和業務團隊管理經驗,同濟軟體工程本科,復旦工程管理碩士,阿里雲認證雲服務資深架構師,上億營收AI產品業務負責人。