スタイル・エッジLABO技術ブログ

士業集客支援/コンサルティングのスタイル・エッジグループ スタイル・エッジLABOのエンジニアによるブログです。

Django3はじめました

こんにちは、スタイル・エッジLABOのMです。

弊社ではPHPでの開発だけではなく、Pythonを使った開発も行っております。
今回フレームワークとしてDjango 3.0を採用しましたので
開発環境で画面の確認ができるまでをおさらいしようと思います。

f:id:styleedge_tech:20201113162531j:plain

1. Djangoのインストール

今回はpipからインストールしました。
インストール時にバージョン指定をすることができます。

$ pip install Django==3.0 # Django 3.0をインストール

2. プロジェクトの作成

以降もコマンドを実行して準備を進めていきます。 まずは共通の設定を管理するプロジェクトの作成です。

$ python manage.py startproject styleedge-labo # styleedge-laboプロジェクトの作成

3. アプリケーションの作成

先ほど作ったstyleedge-laboプロジェクトと同じ階層に
"sampleapp"アプリケーション用のディレクトリを作成します。
Djangoでは一つのプロジェクトに複数のアプリケーションを紐付けることができます。

$ python manage.py startapp sampleapp # sampleappアプリケーションの作成

ここまで実行すると、ディレクトリ構成は以下のようになります。
細かいファイルの説明もしたいところですが、今回は先に進めて いきます。

├── styleedge-labo # プロジェクト全体に共通する設定・機能
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── db.sqlite3
├── manage.py
└── sampleapp # 各アプリケーションごとの設定・機能
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    ├── urls.py
    └── views.py 

4. 画面が出るまで

settings.pyの編集(DBの設定)

インストール直後はsqllite3で接続できるように設定されていますが、
今回はPostgreSQLで接続するようにstyleedge-labo/settings.pyの内容を編集します

# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'XXXXX',
        'USER': 'XXXXX',
        'PASSWORD': 'XXXXX',
        'HOST': '127.0.0.1',
        'PORT': 5432,
    }
}

ビルトインサーバの実行

以下のコマンドを実行すると、localhost:8000でDjangoの初期ページが表示されるようになります
(あくまで開発用なので、公開する際にはこのコマンドは使わないでください)

$ python manage.py runserver

Django3.0初期ページ画面
初期ページ画面
これで無事にDjangoが動いていることを確認できました。

5. (おまけ)manage.pyでできること

ここまで、manage.pyを起点にして画面が表示されるまでを追っていきましたが
他にもいろいろなことができます。
ここからは実際に開発で使っているコマンドなどを挙げていきます。

マイグレーションファイル作成&マイグレーション実行

$ python manage.py makemigrations # マイグレーションファイルを作成します(実行はまだ)
$ python manage.py migrate # 作成されたファイルをもとにマイグレーションを実行します

静的ファイルのデプロイ

Djangoでは各アプリケーション内の静的ファイルを一箇所にまとめてデプロイするようにしています。
以下のコマンドを実行して、settings.pyで指定したパスに対して静的ファイルをコピーします。

$ python manage.py collectstatic

なお、--noinputオプションをつけると確認メッセージを表示せずに実行します。

DBへの接続

$ python manage.py dbshell # settings.pyで指定したDBに接続します

dump取得&流し込み

$ python manage.py sampleapp dumpdata > dump.json # デフォルトではjson形式で出力されます
$ python manage.py loaddata dump.json

まとめ

ここまでDjango3で画面が表示されるまでをざっとなぞっていきました。
実際にはこのあとガシガシとアプリケーションの機能を書いていくことになります。 コマンドベースで画面表示までたどり着けるので
Laravelに触れたことがある方はartisanコマンドを想像したかもしれませんね。
まだまだ使いこなせていない機能もあると思うので
今後も精進してまいります。

最後に

スタイル・エッジLABOでは、一緒に働く仲間を募集しています。
もし興味を持っていただけましたら、ぜひ採用サイトものぞいてみてください!
recruit.styleedge-labo.co.jp