Django的初始设置到显示HelloWorld(基础的基础)
首先
我整理了一个关于Django项目的初始设置和显示HelloWorld的一系列步骤。虽然这是在使用Django创建Web应用程序时的基础知识,但它是开发过程中的必要步骤,希望您可以将其用作备忘录(请自行负责使用)。
1. 创建虚拟环境并安装Django。
创建Django作业文件夹
% mkdir python-django
在创建的文件夹下创建虚拟环境。这里将创建一个名为“virtual”的虚拟环境。
python-django % python3 -m venv virtual
移动到bin文件夹
python-django % cd virtual
virtual % ls
bin include lib pyvenv.cfg
virtual % cd bin
bin % ls
Activate.ps1 activate.csh easy_install pip pip3.9 python3
activate activate.fish easy_install-3.9 pip3 python python3.9
激活虚拟环境。
bin % source activate
请确认在终端上是否显示出(虚拟)。
※如果要退出虚拟环境,请输入”deactivate”并按下回车键即可。
Django的安装
(virtual) bin % pip3 install django
創建Django工作環境
我打算在虚拟文件夹下创建Django的工作环境。
首先,我会将文件夹位置移动到虚拟文件夹下,并在其中创建名为Django的文件夹。
(virtual) bin % cd ../
(virtual) virtual % mkdir Django
(virtual) virtual % cd Django
使用”firstapp”作为名称来启动Django项目。输入以下命令和项目名称,然后按下回车键。
(virtual) Django % django-admin startproject firstapp
我认为在Django文件夹下创建了一个名为firstapp的文件夹。在firstapp下面有一个名为firstapp的文件夹和一个名为manage.py的文件。
在进入包含manage.py文件的目录后,执行以下命令manage.py startapp。在此命令中,作为参数输入应用程序名称,我们决定使用todo作为应用程序名称。
(virtual) firstapp % python3 manage.py startapp todo
3. 让”你好,世界”显示出来-操作说明篇
如果没有接触过Web应用程序代码(包括其他语言的框架),则需要了解其原理后才能编写代码。在这里,我想使用Django框架的机制作为例子,通过使用图表来解释如何显示HelloWorld。
①从网站向Django框架发送请求。
②首先,在名为firstapp/urls.py的文件中接收请求。在这里,写着要去查看在应用文件夹中创建的todo/urls.py,所以会跳转到那里去。
③在todo/urls.py中,写着要调用views.py中定义的hello函数,所以会去看一下views.py。
④在views.py中定义了hello函数。它调用了名称为base.html的文件(模板)位于模板文件夹中,并将值(hw)赋给名称为object的键,然后渲染网站。在这里合成网站。
⑤将在步骤④中合成的网站返回给浏览器。
也许有人会觉得为了简单地显示HelloWorld而做这么多的麻烦事。但是,通过使用这个机制,我们不需要逐个创建HTML文件,而是可以将内容输入到模板中并进行显示。
4. 尝试显示”Hello World” – 代码部分
作为初始设置,将firstapp文件夹中的urls.py更改如下。开始页指示去查看todo文件夹的urls.py。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('todo.urls')),
]
下一步,在settings.py文件中,需要将TODO应用程序加入INSTALLED_APPS中以便识别。这将添加’todo.apps.TodoConfig’,它引用了todo文件夹中apps.py的TodoConfig类。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'todo.apps.TodoConfig',
]
创建一个名为”templates”的文件夹,并将模板文件夹的路径添加到settings.py文件中。在manage.py所在的目录下创建一个名为”templates”的文件夹,并在settings.py的TEMPLATES部分进行以下配置。
import os
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(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',
],
},
},
]
我会编辑todo文件夹中的urls.py。从firstapp文件夹的urls.py跳转到todo文件夹的urls.py,所以我会在todo文件夹的urls.py中编写调用(稍后)在views中写的函数的指令。
from django.urls import path
from .views import hello
urlpatterns = [
path('', hello, name='hello'),
]
接下来我们要编写views.py。在这里,return render是关键,当有请求时,它会调用base.html作为模板(稍后会创建),并在key为object时,将hw(Hello World)作为值调用出来。
from django.shortcuts import render
def hello(request):
hw = 'Hello World!'
return render(request, 'base.html', {'object':hw})
我会把base.html写成下面这样。
(Nǐ xiě base.html .)
{{object}}
请用以下的命令输入并点击URL试试看,这样你就能看到显示”Hello World!”了。
(virtual) firstapp % python3 manage.py runserver