我第一次在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
随后,
$ 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',
]
每次创建新应用程序时,必须按照上述方式添加,并被认可和应用。
设置URL
接下来,我们要进行URL的设置。虽然只在conf的url.py中添加url模式也可以,但随着配置的增加,管理将变得更加困难,因此将其分开设置为每个应用程序是最佳实践。
我們將編輯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')), ⇦ 追加
]
首先,导入include模块,然后在urlpatterns列表中添加path(”, include(‘hello.urls.py’))。
这个操作使用include函数来读取hello应用程序的urls.py文件。这样做可以使我们只需专注于编辑hello应用程序的urls.py文件。
接下来,我们要在hello应用程序中创建一个名为urls.py的文件。由于startapp命令不会自动创建应用程序目录下的urls.py文件,所以我们需要手动创建它。
如果您在hello应用程序中创建了urls.py文件,请按照以下方式进行编辑。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index),
]
从. import view可以将views.py从同一层次导入。
path(”,views.index)指定了URL路径的第一个参数(在本例中为空),并指定了匹配URL模式的view函数作为第二个参数(将在下一步创建view函数)。第三个参数用于反向解析URL,以’name =指定的名称’的形式写入。但是,由于本次不需要,所以省略了。没有填写。
创建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,这等同于向成为工程师迈出了重要的一步。可能会感到困难,但我相信如果持续学习,迟早会体会到其中的乐趣。
我自己也是在第二个月,仍然是个新手,但我希望能够不断发展。