1 ,はじめに
本記事では、Pythonを用いたwebサイトの実装を行っています。
ローカル環境で簡単なブログサイトを作成することでサーバーサイドで行われていることや、フロントエンドへの反映など基本的な知識の紹介を行います。ソースコードはGitHubに記載しています。
環境構築
まず初めにするべきこととしてPython(Django)を正常に動作させるための環境をローカルに作成する必要があります。
前提
Windows11
・性能
CPU : Corei7-11世代
GPU : Intel iris(純正グラフィックス)
メモリ : 16GB
SSD : 512GB
※webサイト構築をプログラミングで行うには最低でもCore i5以上かつメモリ8GB以上が望ましいです。
本記事ではDockerを利用して仮想環境で開発環境の構築をしました。
Dockerを使う理由としては実際の開発現場を想定して行いたかったからです。
※pythonを用いるため仮想環境venvやAnacondaを使ってもOKです。
Dockerを用いた環境構築
ここから具体的なDockerを用いた構築を行います。
ここではDokerのインストールは行っているものとします。
ディレクトリ構成は以下のようにします。/Desktop/blog_app/
ここではDesktop内に今回作成するサイトのプログラムを書いていこうと思います。
そのためディレクトリに関しては任意の場所に作成してください。
作成したディレクトリ内に以下のファイルを作成、追加してください。
blog_app/
├ Dockerfile
├ docker-compose.yml
└ requirements.txt
これらの3つのファイルの中身について見ていきます。
version: '3'
services:
db:
image: postgres
ports:
- "5432:5432"
volumes:
- ./db_data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
※ここでは実験的にPsotgresqlの環境を構築していますがDajngoプロジェクト立ち上げ時にSQLite3というデータベースが自動で構築されるので今回はそちらを利用します。
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
Django==2.2.17
django-bootstrap4==2.3.1
これらのファイル作成ができたら次はDjangoのプロジェクト、サーバーの開始です。
Djangoのプロジェクト作成
docker-composeコマンドを利用し上述したファイルの条件通りの環境(Docker コンテナ)を構築します。
docker-compose run web django-admin.py startproject [project_name] .
※本記事ではproject_nameをblogとします。
上記コマンドを実行するとblog_appディレクトリ内に以下のようなプロジェクトファイルが生成されます。
blog_app/
├ manage.py
└ blog(project_name)/
├ __init__.py
├ settings.py
├ urls.py
├ asgi.py
└ wsgi.py
ここまででコンテナの作成およびDjangoプロジェクトの作成は完了です。
次はコンテナを起動しDjangoのスタートページを表示してみましょう。Djangoサーバー開始
blog_appディレクトリにおいてターミナルで以下のコマンドを実施し、コンテナを起動してください。
docker-compose up
以下のようなログが表示されると成功です。
blog_app-web-1 | Django version 2.2.17, using settings 'blog.settings'
blog_app-web-1 | Starting development server at http://0.0.0.0:8000/
blog_app-web-1 | Quit the server with CONTROL-C.
下から2行目のhttp://0.0.0.0:8000 にブラウザからアクセスしてみましょう。
Djangoスタートページが表示されれば成功です。
はじめは英語表記になっていますがsettings.pyを以下のように変更すれば日本語表記になります。
#settings.pyの112行目あたりに記載
LANGUAGE_CODE = 'ja'#日本語表記
TIME_ZONE = 'Asia/Tokyo'#タームゾーンを東京に変更
ここまでが環境構築編になります。
次回から実際にblogサイトの構築編に入ります。