Django 简明教程

Django - Index Page

当使用 startproject command 创建新 Django 项目时,URL http://localhost:8000/ 将显示 default index page 。它表明 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
  1. init.py - 确保 Python 将此文件夹视为一个软件包。

  2. admin.py - 此文件可帮助您在管理员界面中修改应用程序。

  3. models.py - 这是所有应用程序模型的存储位置。

  4. tests.py - 这是您的单元测试所在的位置。

  5. 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 中创建一个简单的视图来说“ welcome to my app!

打开“myapp\views.py”并添加以下 view 函数-

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以 verify ,该 hello() view 被呈现-

http://localhost:8000/

您应该可以看见索引页面的输出。

A Django Home Page with Multiple Apps

但是,一个Django项目可能包含多个应用程序。因此,项目主页应包含指向各个应用程序主页的链接。

让我们在当前Django项目中创建两个应用程序-

python manage.py startapp customers

并且,

python manage.py startapp products

Rewrite the main index page 项目如下:

<!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", {})

与此类似, index page 是为产品应用程序创建的,且其映射视图在 “ 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 ( http://localhost:8000/ ):

django index page 2