在Docker中使用Django
想做的事情 zuò de
让我们创建一个项目·workshop_tutorialJP
按照这个网站的指引来制作应用程序
不要使用virtualenv,而是使用Docker。
环境
Docker for Windows 版本 18.06.1-ce-win73(19507)
建立项目
创建一个名为Djangogirls的目录,并在其中创建以下3个文件。
djangogirls
├── Dockerfile
├── docker-compose.yml
└── requirements.txt
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
Django>=1.8,<2.0
psycopg2
2. 创建所需的目录和文件
使用docker-compose运行web django-admin.py startproject mysite . 来启动我的网站项目。
djangogirls
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
进行服务的构建操作,使用docker-compose build命令。
启动Docker容器
运行docker-compose up

创建Django模型
使用Docker Compose 运行以下命令来创建一个名为“blog”的应用程序:docker-compose run web python manage.py startapp blog
创建了一个博客目录。
djangogirls
├── blog
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── db.sqlite3
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
在`mysite/settings.py`文件的`INSTALLED_APPS`中添加`’blog’`
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
)
请将以下内容复制粘贴到3.blog/models.py文件当中。
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
在数据库中创建一个用于模型的表格
1. 将模型添加到数据库中
使用docker-compose运行web python manage.py makemigrations blog
执行用于将数据迁移到数据库的迁移文件
docker-compose运行web python manage.py migrate blog
请登录
将以下内容复制粘贴到blog/admin.py中
from django.contrib import admin
from .models import Post
admin.site.register(Post)
2.superuserを作成する
docker-compose run web python manage.py createsuperuser
ユーザ、メールアドレス、パスワードを聞かれるので入力する。(パスワードは簡単すぎると怒られる)
3. 登录
访问http://127.0.0.1:8000/admin/并进行登录。
4.成功登录了
太好了!
(一旦部署完成后,我会再进行补充)
(2018/10/30附加)在Heroku部署上永远卡住了。