とりあえず、Python x Django を試してみたいと思ったら。
まずは、環境設定から始まりますが、これが結構多変です。
いつもは、うまくいく手順で環境設定したのに、エラーとか出たりすると、それだけで、1日が潰れてしまいます。
勿体無いし。始めるときは、1日を捨てる覚悟が必要でしょう。
そこで、Docker x code-server です。これらの問題を解決してくれます。
Dhango Girls Tutorial を 流してみよう
今回は、Django Girl Tutorial を、人流ししてみたいとします。DoJango Girls Tutorial は、 Django の基本的な機能を触れるので、便利ですね。
最初に流すチュートリアルとしては良い感じだと思います。
Code-Server x Docker で、環境を作る。
Code-Server を利用することで、 Docker 上で VSCodeが動作するようになります。
なんと、 Docker 上で VSCode の Pyhton Plugin が動くようになるのです。 Django の開発も、Auto Complete などを、効かせて開発ができるようになります。
とっても、便利!!
まずは、 Python x Django の Hello World!!
まずは、 Python x Django の Hello Worldを書いて、動かしてみましょう。
とりあえず、動くものができれば、シメたもので、
あとは、それをより良いものにしていけば良いのです。
(1) Dockerfileを書く
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install -y curl wget gnupg less lsof net-tools git apt-utils -y
RUN mkdir /works
WORKDIR /works
# CODE-SERVER
RUN wget https://github.com/cdr/code-server/releases/download/1.939-vsc1.33.1/code-server1.939-vsc1.33.1-linux-x64.tar.gz
RUN tar xzf code-server1.939-vsc1.33.1-linux-x64.tar.gz -C ./ --strip-components 1
#
#
ENTRYPOINT /works/code-server --allow-http --no-auth
#
# plugin
# https://marketplace.visualstudio.com/items?itemName=ms-python.python
#
#
# install python
# --no-cache
RUN apt-get install build-essential checkinstall -y
RUN apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev libgdbm-dev libc6-dev libbz2-dev --fix-missing -y
RUN apt-get install zlib1g-dev libffi-dev -y --fix-missing
RUN wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
RUN tar xf Python-3.7.3.tgz
WORKDIR /works/Python-3.7.3
RUN ./configure --enable-optimizations
RUN make altinstall
RUN pip3.7 install --upgrade pip
RUN ln /usr/local/bin/python3.7 /usr/local/bin/python
WORKDIR /works/w
RUN pip install Django
# docbuild -t python_django_vscode .
# docker run -p 8443:8443 -p8080:8080 -p8022:22 -it python_django_vscode
適当すぎますが、まずは、動けば良いのです。
(2) build & run docker container
docker build -t python_django_vscode .
docker run -p 8443:8443 -p 8080:8080 -it python_django_vscode
(3) ブラウザーで 'http://127.0.0.1:8443/' を開く
(4) django project を作成する
(4-1) VSCode上で、Terminal -> New Terminal
(4-2) Terminal 上で、
root@8e5699b9caa4:/works/w# django-admin startproject mysite
root@8e5699b9caa4:/works/w# cd mtsite
root@8e5699b9caa4:/works/w# python manage.py runserver 0.0.0.0:8080
(5) ブラウザーで 'http://127.0.0.1:8080/' を開く
VSCode 向け、Python Plugin を install
このままでは、Auto Complete などの 便利機能が使えないので、Plugin を設定してみましょう。
(a) install plugin
https://marketplace.visualstudio.com/items?itemName=ms-python.python
(b) django 向け 拡張
$pip install pylint-django
$pip install typeguard
(c) .vscode/settings.json に以下を追加
{
"python.linting.pylintArgs": [
"--load-plugins=pylint_django"
],
}
(d) ブラウザーをw reload すると Plugin が反映されます。
続く
mysql を動作させたり、 nginx を含めたり、 Celery を通して、 Batch処理を書いたり。続く。
PS
mysql を利用したい場合は、 docker-compose を利用すると楽だと思います。仮で作成したものがあるのでリンクをしておきます。
-
仮で作成した docker-compose.yml
https://github.com/kyorohiro/my-code-server/tree/master/python_django/compose -
django girl tutorial で作成したコード
https://github.com/kyorohiro/my_djangogirls_memo