Django - 首頁



當使用startproject 命令建立一個新的 Django 專案時,URL https://:8000/ 會顯示一個預設的索引頁面。這表明 Django 安裝已成功完成。

使用以下命令建立專案:

django-admin startproject myproject

現在您的專案已建立並配置,請確保它正常工作:

python manage.py runserver

執行上述命令後,您將在螢幕上看到類似以下內容:

Validating models...

0 errors found
March 09, 2022 - 12:24:26
Django version 4.0, using settings 'myproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.Quit the server with CONTROL-C.

開發伺服器正在運行於http://127.0.0.1:8000/。在瀏覽器中開啟此連結。

Django Index Page 1

在主“myproject”資料夾中,使用manage.py命令:

python manage.py startapp myapp

您剛剛建立了myapp應用程式。Django 還建立了一個包含應用程式結構的“myapp”資料夾:

myapp/
   __init__.py
   admin.py
   models.py
   tests.py
   views.py
  • __init__.py - 確保 Python 將此資料夾視為一個包。
  • admin.py - 此檔案可幫助您在管理員介面中修改應用。
  • models.py - 這是儲存所有應用程式模型的地方。
  • tests.py - 這是放置單元測試的地方。
  • views.py - 這是放置應用程式檢視的地方。

更新專案settings.py檔案中的INSTALLED_APPS列表(新增您的應用名稱):

INSTALLED_APPS = [
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'myapp',]

我們將在myapp中建立一個簡單的檢視,顯示“歡迎使用我的應用!”。

開啟“myapp\views.py”並新增以下檢視函式:

from django.shortcuts import render

# Create your views here.

def index(request):
   # other view code here
   return render(request, index.html', {})

在此檢視中,我們使用HttpResponse呈現 HTML 頁面。要將此檢視顯示為頁面,我們只需要將其對映到一個 URL。

將以下 Python 指令碼另存為myapp/urls.py

from django.urls import path
from . import views

urlpatterns = [
   path('', views.index, name='index'),
]

下一步是將根URLconf指向myapp.urls模組。

myproject/urls.py中,新增django.urls.include的匯入並插入urlpatterns列表中的include(),這樣您將擁有:

from django.contrib import admin
from django.urls import include, path

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

現在執行 Django 開發伺服器:

python manage.py runserver

訪問以下 URL 以驗證是否呈現了hello() 檢視

https://:8000/

您應該能夠看到索引頁面的輸出。

具有多個應用的 Django 主頁

但是,一個 Django 專案可能包含多個應用。因此,專案主頁應包含指向各個應用主頁的連結。

讓我們在當前的 Django 專案中建立兩個應用:

python manage.py startapp customers

以及:

python manage.py startapp products

重寫專案的索引頁面為:

<!Doctype html>
<html>
<body>
   <!--header-->
   <div style="height:10%;">
      <h2 align="center">My Web Application</h2>
      <hr>
   </div>
   <div style="width:100%;">
      <!—side bar-->
      <div style="width:20%; float:left; border-right-style:groove">
         <ul>
            <b>
               <li><a href="admin/">Admin</a></li>
               <li><a href="customers/">Customers</a></li>
               <li><a href="Products/">Products</a></li>
            </b>
         </ul>
      </div>
      <!--contents-->
      <div style="margin-left:21%;">
         <p>
            <h2 align="center">Main Index Page</h2>
         </p>
      </div>
   </div>
   <br><br><br>
   <!--footer-->
   <hr>
   <div>
      <h4 align="right">All rights reserved</h4>
   </div>
</body>
</html>

客戶應用的索引頁面應儲存在 templates 目錄中。它由 customers/views.py 檔案中的檢視呈現:

from django.shortcuts import render

# Create your views here.
def index(request):
   return render(request, "customerindex.html", {})

類似地,產品應用的索引頁面已建立,其對映檢視在“products/views.py”檔案中定義:

from django.shortcuts import render

# Create your views here.
def index(request):
   return render(request, "productindex.html", {})

您還需要為每個應用定義urlpattern列表,如下所示:

from django.urls import path
from . import views

urlpatterns = [
   path("", views.index, name="customer-index"),
]

同樣,對products應用執行以下操作:

from django.urls import path
from . import views

urlpatterns = [
   path("", views.index, name="product-index"),
]

更新myproject/urls.py檔案的 URLCONF:

from django.contrib import admin
from django.urls import path, include
from . import views

urlpatterns = [
   path('admin/', admin.site.urls),
   path('products/', include("products.urls")),
   path('customers/', include("customers.urls")),
   path('', views.index, name='index'),
]

執行 Django 伺服器並訪問 Django 專案的根 URL(https://:8000/):

Django Index Page 2
廣告