我用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”的字样,则表示执行正确。
以上