利用 Django 创建网站
因为我过去多次做了又重新做,每次都要到处查找信息,所以考虑留下备忘录。
顺便提一句,内容基本上就是按照这个链接中的描述来实现的。(我想做一个超简单和最小化的页面,这个链接对我非常有帮助……)
环境设置
我正在使用pyenv和virtualenv创建一个名为rate-site的虚拟环境,从3.6.1版本开始。除了我以外的人可以忽略这一步骤,没关系。
mkdir rate_site
cd rate_site
pyenv virtualenv 3.6.1 rate-site
pyenv local rate-site
创建以下的 requirements.txt 文件。
dj-database-url==0.5.0
dj-static==0.0.6
Django==2.2.6
django-heroku==0.3.1
gunicorn==20.0.0
mysqlclient==1.4.4
psycopg2==2.8.4
PyMySQL==0.9.3
python-dateutil==2.8.1
pytz==2019.3
six==1.13.0
sqlparse==0.3.0
static3==0.7.0
whitenoise==4.1.4
然后。
pip install -r requirements.txt
安装所需的东西。
将创建requirements.txt文件的目录(rate_site)成为git管理的最顶层目录。
项目和应用程序的创建
mkdir rate_site # 今いるrate_site内でもう一個作る
cd rate_site
django-admin startproject rate_site .
python manage.py startapp rate_hp
编辑配置文件
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rate_hp', #追加
]
(省略)
LANGUAGE_CODE = 'ja' #変更
TIME_ZONE = 'Asia/Tokyo' #変更
(省略)
USE_TZ = False #変更
迁徙
python manage.py migrate
创建管理员用户
python manage.py createsuperuser
确认启动
python manage.py runserver
这里是 http://127.0.0.1:8000/
当访问时,Django会显示默认页面。
为了能够访问rate_hp
from django.urls import path, include #追加
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('rate_hp.urls')), #追加
]
创建HTML文件
在存放rate_site和rate_hp的目录下,创建一个名为templates的文件夹。
<html>
<head>
<title>ホームページ</title>
</head>
<body>
<p>ここがbase.htmlです。</p>
{% block main_containts %}
{% endblock %}
<p>ここがbase.htmlです。</p>
</body>
</html>
{% extends "base.html" %}
{% block main_containts %}
{% load static %}
<main>
ここがindex.htmlです。
</main>
{% endblock %}
编辑rate_hp文件中的内容。
from django.shortcuts import render
from django.http import HttpResponse
from django.template import Context, loader
def index(request):
template = loader.get_template('index.html')
context = {}
return HttpResponse(template.render(context, request))
由于urls.py文件不存在,所以需要新建一个。
from django.urls import path
from . import views
app_name = 'rate_hp' #django2.0から必要になったnamespace定義
urlpatterns = [
path('', views.index, name='index'),
]
让 Django 读取之前已经创建的模板。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'], # 追加
'APP_DIRS': True,
在这里再一次,
python manage.py runserver
执行以下操作,并访问http://127.0.0.1:8000/。
一旦完成
暂且来说,未来我们计划不断地添加新的应用程序到这个主页上,并且使其可以被访问。