Django - 首页



当使用startproject 命令创建一个新的 Django 项目时,URL https://127.0.0.1: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://127.0.0.1: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://127.0.0.1:8000/):

Django Index Page 2
广告