第一次使用Django的Hello World

我是一名刚学习Django两个月的初学者工程师。
这是我第一次发帖,所以我将记录下使用Django在浏览器中输出“Hello World”的过程。

环境

    • Macで開発

 

    • Python 3.7.5

 

    Django 2.2.6

安装Django

pip install django==2.2.6

首先,使用上述命令安装 Django。由于本次使用的是 Django 2.2.6 版本,因此在 django 后面添加 ==2.2.6 来指定版本。

为了确认,您可以使用以下命令检查是否已经安装。

$ python -m django --version
2.2.6

创建项目

如果安装成功后,接下来将创建一个项目。
首先,使用以下命令创建名为 myapp 的目录。

$ mkdir myapp 

随后, (simplified Chinese: 随后; traditional Chinese: 隨後).

$ cd myapp 

使用上述命令切换到 myapp 目录,并运行下面的命令来创建项目。

$ django-admin startproject conf . 

请用以下命令确认是否创建了名为 conf 的项目。

$ ls 
conf  manage.py 

如果 conf 和 mange.py 已经被创建,就可以了。
整个目录结构应该如下所示。

myapp
|
├── manage.py
|
└── conf
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

创建应用程序

在Django中,您可以在项目中创建多个应用程序。
这次我们将创建一个名为hello的应用程序。

$ python manage.py startapp hello 

以下是应该有的目录结构图。

myapp
|
├── manage.py
|
├── conf
|   ├── __init__.py
|   ├── settings.py
|   ├── urls.py
|   └── wsgi.py
|
└── hello
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

如果继续这样,hello应用程序将不会生效,需要在conf的settings.py中进行配置,以告知hello应用程序已被添加。

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

每次创建新应用时,都需要像上述方式一样将’hello’添加到INSTALLED_APPS中,才会被识别和应用。

设置URL

接下来,需要进行URL的设置。虽然将url模式仅添加到conf的url.py文件中也可以,但是随着配置的增加,管理将变得困难,因此将其分开设置为每个应用程序是最佳实践。

将conf文件夹中的url.py文件进行如下编辑。

from django.contrib import admin
from django.urls import path, include  includeをインポート

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('hello.urls.py')), ⇦ 追加
]

首先,导入include,并在urlpatterns中添加path(”, include(‘hello.urls.py’))。
这样做是为了使用include函数来加载hello应用程序的urls.py。这样做可以将注意力集中在编辑hello应用程序的urls.py上。

接下来,我们要在hello应用中创建一个名为urls.py的文件。应用的urls.py在使用startapp命令创建应用时不会自动生成,需要我们自己手动创建。

如果您在hello应用程序中创建了urls.py文件,请按照以下方式进行编辑。

from django.urls import path

from . import views

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

从.导入视图将views.py从同一层级导入。
path(”, views.index)将指定URL路径作为第一个参数(在这种情况下,为空),并指定与URL模式匹配的视图函数作为第二个参数(在下一步中将创建视图函数)。第三个参数名称用于反向解析URL,但在这种情况下不需要,所以被省略了。没有填写。

创建View函数

好了,终于到了最后的步骤了。
请将view.py编辑成以下的样子。

from django.http import HttpResponse


def index(request):
    return HttpResponse('Hello World')

首先,导入HttpResponse模块。
接下来,在之前创建的hello应用的urls.py文件中添加了path(”, views.index)。这里的第二个参数中的index将成为本次使用的函数,因此被命名为def index(request)。
HttpResponse(‘Hello World’)将想要返回作为响应的值放入()中,并将其作为HttpResponse对象返回。

请执行python manage.py runserver命令。如果看到以下显示,则表示一切顺利。

February 01, 2020 - 05:59:05
Django version 2.2.6, using settings 'conf.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

打开浏览器并访问http://127.0.0.1:8000。

hello world.png

如果以这样的方式显示,那就是成功的。恭喜恭喜!!!!

一句话

如果能够成功显示”Hello World”,就等于向成为一名工程师迈出了重要的一步。可能会觉得很困难,但我相信只要持续学习,迟早会体会到其中的乐趣。虽然我自己也只是才开始两个月,但我希望能不断发展并传达出去。

bannerAds