Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
Python Django 零基礎(chǔ)從零到一部署服務(wù),Hello Django!全文件夾目錄和核心代碼!
發(fā)布于:2023-07-05 15:44:43

環(huán)境搭建(按需)

首先,我們需要?jiǎng)?chuàng)建一個(gè)適合開(kāi)發(fā)的環(huán)境。在Python開(kāi)發(fā)中,我們通常會(huì)使用虛擬環(huán)境來(lái)保持工作空間的整潔。以下是創(chuàng)建和激活虛擬環(huán)境的步驟:

 

# 創(chuàng)建虛擬環(huán)境
python3 -m venv myenv

# 激活虛擬環(huán)境(Linux/macOS)
source myenv/bin/activate

# 激活虛擬環(huán)境(Windows)
.\myenv\Scripts\activate

 

在虛擬環(huán)境中,我們可以安裝Django:

 

pip install Django

 

這將會(huì)安裝Django并且保證它不會(huì)影響到系統(tǒng)中的其他Python項(xiàng)目。

創(chuàng)建項(xiàng)目

安裝完成后,我們可以使用Django的命令行工具來(lái)創(chuàng)建一個(gè)新的項(xiàng)目:

 

django-admin startproject myproject

 

這將會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)名為myproject的文件夾,其中包含了管理Django項(xiàng)目所需的一些文件。

創(chuàng)建應(yīng)用

在Django中,一個(gè)項(xiàng)目可以包含多個(gè)應(yīng)用,每個(gè)應(yīng)用都是一個(gè)Python模塊,包含了視圖、模型、模板、路由等一系列功能。我們首先創(chuàng)建一個(gè)名為myapp的應(yīng)用:

 

cd myproject
python manage.py startapp myapp

 

這會(huì)在myproject目錄下創(chuàng)建一個(gè)myapp的目錄,包含了管理應(yīng)用所需的一些文件。

定義視圖

接下來(lái),我們需要定義視圖來(lái)處理HTTP請(qǐng)求。在myapp/views.py文件中,我們可以定義一個(gè)視圖來(lái)處理GET和POST請(qǐng)求:

 

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來(lái)返回JSON響應(yīng),用@csrf_exempt來(lái)豁免CSRF保護(hù),以便于我們?cè)跍y(cè)試時(shí)能方便地發(fā)送POST請(qǐng)求。

配置路由

視圖定義完成后,我們還需要配置路由來(lái)將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')),
]

 

這樣,訪問(wèn)/myapp/hello/URL時(shí),就會(huì)調(diào)用我們定義的hello視圖。

啟動(dòng)服務(wù)

最后,我們可以啟動(dòng)Django服務(wù)來(lái)測(cè)試我們的應(yīng)用:

 

python manage.py runserver

 

現(xiàn)在,你可以使用瀏覽器訪問(wèn)http://localhost:8000/myapp/hello/,你將看到返回的{"message": "Hello, Django!"}。你也可以使用工具(如curl或Postman)發(fā)送POST請(qǐng)求,你將看到返回的{"message": "POST request received."}

恭喜你!你已經(jīng)成功地從零開(kāi)始部署了一個(gè)使用Django框架的Python服務(wù)。

項(xiàng)目文件夾和代碼一覽

最后提供給大家,在我們的Django項(xiàng)目中,我們會(huì)看到以下文件結(jié)構(gòu):

 

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

 

在這個(gè)結(jié)構(gòu)中,我們主要關(guān)注的是myapp/views.py,myapp/urls.py,和myproject/urls.py這三個(gè)文件,因?yàn)檫@三個(gè)文件是我們?cè)诓渴餌jango服務(wù)中修改的主要文件。

myapp/views.py

myapp/views.py文件中,我們定義了一個(gè)hello視圖來(lái)處理GET和POST請(qǐng)求。完整的代碼如下:

 

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文件中,我們定義了一個(gè)路由來(lái)將/hello/的URL映射到hello視圖。如果文件不存在,請(qǐng)創(chuàng)建并添加以下內(nèi)容:

 

from django.urls import path

from . import views

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

 

myproject/urls.py

myproject/urls.py文件中,我們包含了myapp的路由,將所有以/myapp/開(kāi)頭的URL映射到myapp的路由。完整的代碼如下:

 

from django.urls import include, path

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

 

以上便是我們創(chuàng)建的Django服務(wù)的全部代碼和文件結(jié)構(gòu)。

轉(zhuǎn)載自:https://www.cnblogs.com/xfuture/p/17525268.html