我用Django的Class Based View展示了一个Hello World应用

综述

我們將創建一個簡單的應用程式,當訪問Django指定的URL時,將顯示「Hello World」。

另外,环境将使用Python 3.7.3和Django 2.2。

这是之前发布的《在Django中创建Hello World应用程序的步骤》的另一个版本。

(从之前开始只有步骤3-2和3-3有变化。)

1. 创建项目

首先,我想要创建一个项目文件,所以使用以下命令创建一个目录。

mkdir helloworld

接下来我们要创建一个名为helloworldproject的项目。请确保目录名为helloworld,并按照最后一个点的指示执行。(请确保确认目录名为helloworld)

~/helloworld$ django-admin startproject helloworldproject .

1-3. 当执行命令时,将在helloworld目录中生成以下文件。

helloworld
├── helloworldproject
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

制作应用程序

2-1. 由于想要创建一个新的应用程序,因此我们将执行以下命令。这次要创建的应用程序名为helloworldapp。

~/helloworld$ python manage.py startapp helloworldapp

完成后,我认为目录将如下所示。

总的来说,可以将helloworld项目文件分为三个部分:①一个名为helloworldapp的应用程序,②一个名为helloworldproject的项目,③一个名为manage.py的文件。

helloworld
├── helloworldapp
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── helloworldproject
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-37.pyc
│   │   └── settings.cpython-37.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

将helloworldproject的settings.py文件中的INSTALLED_APPS中添加helloworldapp。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    #追加
    'helloworldapp',
]

在2-3.编写Hello World,并且在index.html中能够显示出来,需要在TEMPLATES中进行一些设置。需要在DIRS中添加[BASE_DIR, ‘templates’]。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        #追加
        'DIRS': [BASE_DIR, 'templates'],
        #ここまで
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

3. 让我们打印出Hello World。

首先,请将以下内容添加到helloworldproject/urls.py文件中。

from django.contrib import admin
#includeを追加
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    #追加
    path('', include('helloworldapp.urls'))
]

请在helloworldapp中创建一个新的urls.py文件,并添加以下代码。这样,当访问https://网站名称.com/hello时,将会执行helloworldapp。

from django.urls import path
from . import views

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

请在views.py中添加代码,以便后续可以访问到创建的index.html文件。

from django.views.generic import TemplateView

class HelloWorldFunction(TemplateView):
    template_name = "index.html"

请在helloworld目录下新建3-4.templates文件夹。在该文件夹中创建index.html,并按照以下内容进行编辑。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>Hello World</title>
  </head>
  <body>
    <h1>Hello World</h1>
  </body>
</html>

目录应该如下所示。

helloworld
├── helloworldapp
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── helloworldproject
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-37.pyc
│   │   └── settings.cpython-37.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py
└── templates
    └── index.html

请执行以下命令的最后步骤。

~/helloworld$ python manage.py migrate

4. 本地主机启动

我想启动本地主机并确认是否显示“Hello World”,所以我会运行runserver命令。

~/helloworld$ python manage.py runserver

4-2. 请在浏览器中确认 http://localhost:8000/hello 是否正确运行,如果出现”Hello World”的字样,则表示执行正确。

以上

广告
将在 10 秒后关闭
bannerAds