ジャンゴ(django)のプロジェクト開始

2023-03-15 hit count image

ジャンゴ(django)のコマンドでジャンゴ(django)のプロジェクトを生成して開始してみましょう。 また、設定、DB(mysql)連動をして実際ジャンゴ(django)でプロジェクトを開発できるようにしてみましょう

概要

パイソン(python)のジャンゴ(django)でサーバーサイドを開発してみようかと思います。このブログポストではジャンゴ(django)のコマンドでジャンゴ(django)プロジェクトを生成して開始する方法について説明します。

このブログはシリーズです。下記のリンクでシリーズの他の記事を見ることができます。

また、このブログシリーズで説明したソースコードはgithubに公開されております。下記のリンクで確認できます。

ジャンゴ(django)プロジェクト

下記のコマンドでパイソン(python)の仮想環境(Virtual Environment)を実行してジャンゴ(django)が上手くインストールされたか確認します。

source venv/bin/activate
django-admin --version
# 2.2

パイソン(python)の仮想環境(Virtual Environment)の設定やジャンゴ(django)のインストールについては以前のブログを参考してください。

下記のコマンドでジャンゴ(django)プロジェクトを生成します。

django-admin startproject django_exercise

基本フォルダ構造

ジャンゴ(django)のコマンドでプロジェクトを生成したら下記のようなフォルダが生成されることが確認できます。

|-- django_exercise
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   |-- wsgi.py
|-- manage.py

各ファイルは下記のような機能を担当しています。

  • django_exercise/settings.py: 全般的な設定を持ってるファイル
  • django_exercise/urls.py: プロジェクトのurlを管理するファイル
  • django_exercise/wsgi.py: ウェブサーバー(apache, nginxなど)と連動するためのファイル
  • manage.py: プロジェクト管理。例えば、DBのマイグレーション(migration)生成や実行、ローカルで他のインストールしてない状態でウェブサーバー起動など

設定

設定ファイルであるdjango_exercise/settings.pyを開いて下記のようにタイムゾーンを設定します。

...
TIME_ZONE = 'Asia/Tokyo'
...
USE_TZ = False
...

上の設定でUSE_TZのオプションがTrueの場合、templatesとformsのみで上で設定したタイムゾーンを使えます。Falseの場合、modelsでもタイムゾーンが使えますので全てのところで設定したタイムゾーンが使えます。

また、staticファイルを使うため下記のようにSTATIC_ROOTを追加します。

...
STATIC_URL = '/static/'
...

最後は、プロジェクトを本番サーバーにデプロイする場合、下記のようにDEBUG設定をFalseで変更してデプロイしてください。

...
DEBUG = False
...

DB設定

ここではジャンゴ(django)とmysqlを連動する方法について説明します。マック(Mac)にmysqlをインストールする方法については下記のリンクを確認してください。

ジャンゴ(django)の設定ファイルであるdjango_exercise/settings.pyを開いて下記のように修正します。

...
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '...',  # DB name
        'USER': 'root',  # DB account
        'PASSWORD': '...',  # DB account's password
        'HOST': '127.0.0.1',  # DB address(IP)
        'PORT': '3306',  # DB port(normally 3306)
    }
}
...

上の内容でNAMEPASSWORDを開発環境に合わせて修正して使ってください。 下記のコマンドでmysqlとの連携に必要なモジュールであるmysqlclientをインストールします。

pip install mysqlclient

もしインストールする時下記のようなエラーメッセージが出たら、

...
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'clang' failed with exit status 1
...

下記のコマンドでmysqlclientをインストールしてください。

LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient

モジュールのインストールが完了したら他の環境でも使えるように下記のコマンドでrequirements.txtファイルを更新します。

# cd django_excercise
pip freeze > requirements.txt

Databaseが上手く連動したか確認するためジャンゴ(django)が基本的に提供してる管理画面で必要なテーブルを下記のコマンドを使って生成してみます。

python manage.py migrate

ジャンゴ(django)とmysql連動を上手く実行したら下記のような画面が見えます。

ジャンゴ(django)とmysql連動やmigration実行

databaseツールを使って確認したら下記のようにテーブルが生成されたことが確認できます。

databaseツールを使ってジャンゴ(django)とmysql連動やmigration実行確認

テスト

いアマまでジャンゴ(django)の設定についてみてみました。下記のコマンドでジャンゴ(django)で提供してるテストウェブサーバーを起動して私たちが作ったプロジェクトが上手く実装されるか確認します。

python manage.py runserver
# http://127.0.0.1:8000/

ジャンゴ(django)のいんんストールと設定が無事に終ったら下記のようにジャンゴ(django)が基本的提供する基本画面が見えます。

ジャンゴ(django)のインストールや設定を使ってプロジェクト開始

完了

これでジャンゴ(django)のコマンドを使ってプロジェクトを生成して開始する方法についてみてみました。簡単にプロジェクトのフォルダ構造の説明や設定についてもみてみました。また、今後使うmysqlとの連動やローカルでテストするためジャンゴ(django)が基本的提供してるウェブサーバーを使ってプロジェクトを実行してみました。

じゃ、開発する準備ができました。ジャンゴ(django)を使って開発を始めて見ましょう!

私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!

アプリ広報

今見てるブログを作成たDekuが開発したアプリを使ってみてください。
Dekuが開発したアプリはFlutterで開発されています。

興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。

Posts