【Python】在Django中娱乐(设置和显示HTML文件)
关于这篇文章
最近,我发布了一些关于 PHP 框架「Laravel」的文章。
想知道其他框架的感觉,所以这次我尝试了 Python 的框架「Django」。
我计划试试其他各种框架。
环境
操作系统:Windows 10 家庭版
Python 版本:3.9.2
Django 版本:3.1.7
安装Python
如果您尚未安装Python,则请安装它。您可以前往下载安装网站。
我尝试安装了最新版本的Python 3.9.2(截至2021年2月20日)。安装完成后,为了便于通过命令轻松使用Python,我在环境变量中添加以下内容。
・~/Python39 (Python3.9版本)
・~/Python39/script (Python3.9版本的脚本)
Django的安装
使用pip安装Django。
pip install django
这就完成了。
创建一个Django项目
请按照以下步骤创建项目:
将项目文件夹路径设置为您想要安装的路径,然后使用以下命令进行创建。
django-admin startproject demosite
「demosite」是每个人设定的项目名称。
创建完成了。
我会确认是否成功地创建了。我会切换到创建的项目文件夹。
cd demosite
随后,将在以下地点进行项目执行。
python manage.py runserver


展示HTML文件
我将尝试显示我自己创建的HTML文件。这次我创建了一个名为demosite的项目文件,但本来应该创建一个名为应用程序文件夹的东西,但可能会变得复杂,所以这次我会继续进行而不创建。
创建HTML文件
首先,在项目文件夹的根目录下创建一个名为templates的文件夹。然后将HTML文件放在这个文件夹里面。我们可以先创建一个名为sample.html的文件,并按照以下方式进行设置。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>てすと<ぺーじ/title>
</head>
<body>
<h1>【Python】Djangoで遊ぶ</h1>
</body>
</html>
编辑设置文件
然后,我们需要修改demosite/demosite目录下的设置文件settings.py。
※在这里「demosite」是项目名,请将其替换为您自己的项目文件名。
"""
Django settings for demosite project.
Generated by 'django-admin startproject' using Django 3.1.7.
For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""
from pathlib import Path
import os #追加
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '-7w5go^j$%*@%106xkw1+bf)(h#m9xv5xj938@zv0j6u8^q-oq'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'demosite.urls'
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',
],
},
},
]
WSGI_APPLICATION = 'demosite.wsgi.application'
# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/3.1/topics/i18n/
LANGUAGE_CODE = 'ja' #変更
TIME_ZONE = 'Asia/Tokyo' #変更
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/
STATIC_URL = '/static/'
在进行了追加和变更的地方已经添加了评论。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'), #追記
],
在这里设置模板文件夹的路径。
根据我的调查,虽然提到了在`os.path.join(BASE_DIR, ‘templates’)`上添加内容,但仅仅添加内容会导致错误。
必须明确指出要安装os模块。
所以,在开头的部分进行了以下补充:
python
导入os模块
LANGUAGE_CODE = ‘zh’ #变更
时区 = ‘亚洲/东京’ #更改
编辑urls.py
接下来,urls.py是管理在打开URL时的处理的文件。与Laravel中的Route类似,对吧?
我們將編輯urls.py文件如下。
from django.contrib import admin
from django.urls import path
from . import sample #追加
urlpatterns = [
path('admin/', admin.site.urls),
path('sample/', sample.index, name='sample'), #追加
]
“管理员/的地方从一开始就有记录。
在下面的示例/处添加了补充内容,并在示例/打开时写明处理sample.py文件的index函数。”
只需要一个选择,用中文进行以下原文的释义:
创建sample.py文件
创建一个新的sample.py文件,该文件在最后打开sample/时会进行处理。
在Laravel中,这可能类似于控制器(Controller)。
from django.shortcuts import render
def index(request):
return render(request, 'sample.html')
index函数中的render返回一个HttpResponse对象。
这里表示返回的是sample.html。
显示示例页面

最后
我只是碰了一下这个问题。虽然我不确定这是否是基本流程,但我大概能理解Django框架的工作方式。
附言:这是一个2月20日的文章(直到睡觉之前是今天)。