Я запускаю django 2.1.3 в контейнере python3 на основе альпийского изображения, я создаю свое собственное изображение, следуя этому руководству: https://docs.docker.com/compose/django/ (с другими проектными работами) на этот раз шаблоны не отображаются, страница, которую я получаю, является отрисовкой вызываемого шаблона, части расширения не существует.
Я пытаюсь запустить код в папке связывания вместо томов Docker и не изменился.
Dockerfile:
FROM python:3-alpine
ENV PYTHONUNBUFFERED 1
RUN mkdir -p /code/
WORKDIR /code/
ADD requirements.txt /
RUN apk update && \
apk add postgresql-libs && \
apk add --virtual .build-deps gcc musl-dev postgresql-dev && \
python3 -m pip install -r /requirements.txt --no-cache-dir && \
apk --purge del .build-deps
docker-compose (раздел изображения django):
django:
build: "./django"
image: registry.gitlab.com/vaschetto.marco/project-docker-File/django:v0.1
container_name: Project_django
restart: always
command: python3 manage.py runserver 0.0.0.0:8000
env_file:
- ./django/.env
volumes:
- django:/code/
- django_static:/code/static/
depends_on:
- psql
Структура шаблона:
.
├── db.sqlite3
├── Dockerfile
├── project
...
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
├── requirements.txt
├── sito #app
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
...
│ ├── models.py
│ ├── __pycache__
...
│ ├── templates
│ │ └── sito
│ │ ├── body.html
│ │ ├── footer.html
│ │ ├── head.html
│ │ └── home.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
└── static
Настройки проекта django (раздел установленных приложений и шаблонов):
...
# Application definition
INSTALLED_APPS = [
'sito',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
...
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',
],
},
},
]
...
project / urls.py:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('', include('sito.urls')),
path('admin/', admin.site.urls),
]
sito / urls.py:
from django.urls import include, path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
sito / views.py
from django.shortcuts import render
# Create your views here
def index(request):
return render(request, "sito/home.html")
sito / templates / sito / home.html:
<!DOCTYPE html>
<html>
<head>
{% block head %}
{% endblock %}
<head>
<body>
{% block body %}
{% endblock %}
</body>
<footer>
{% block footer %}
{% endblock %}
</footer>
</html>
sito / templates / sito / head.html:
{% extends "sito/home.html" %}
{% block head %}
<title>
This is the title WEBISTE!
<title>
{% endblock %}
sito / templates / sito / body.html:
{% extends "sito/home.html" %}
{% block body %}
<h1>WEB SITE BODY!</h1>
{% endblock %}
sito / templates / sito / footer.html:
{% extends "sito/home.html" %}
{% block footer %}
<h2>THIS IS THE FOOTER</h2>
{% endblock %}
результат, который я ожидаю, выглядит следующим образом:
<!DOCTYPE html>
<html>
<head>
<title>
This is the title WEBISTE!
<title>
<head>
<body>
<h1>WEB SITE BODY!</h1>
</body>
<footer>
<h2>THIS IS THE FOOTER</h2>
</footer>
</html>
носделать возвратэто страница:
<!DOCTYPE html>
<html>
<head>
<head>
<body>
</body>
<footer>
</footer>
</html>