概要
パイソン(python)のジャンゴ(django)でサーバーサイドを開発してみようかと思います。このブログポストではジャンゴ(django)のコマンドでジャンゴ(django)プロジェクトを生成して開始する方法について説明します。
このブログはシリーズです。下記のリンクでシリーズの他の記事を見ることができます。
- ジャンゴ(django)インストール
- ジャンゴ(django)のプロジェクト開始
- ジャンゴ(django)のモデル(models)の使い方
- ジャンゴ(django)の管理者ページ
- ジャンゴ(django)のルーティング(Routing)
- ジャンゴ(django)のORM
- ジャンゴ(django)のビュー(View)
- ジャンゴ(django)のフォーム(Form)
- ジャンゴ(django)プロジェクトをヘロク(Heroku)へアップロードする
また、このブログシリーズで説明したソースコードは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)
}
}
...
上の内容でNAME
とPASSWORD
を開発環境に合わせて修正して使ってください。 下記のコマンドで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連動を上手く実行したら下記のような画面が見えます。
databaseツールを使って確認したら下記のようにテーブルが生成されたことが確認できます。
テスト
いアマまでジャンゴ(django)の設定についてみてみました。下記のコマンドでジャンゴ(django)で提供してるテストウェブサーバーを起動して私たちが作ったプロジェクトが上手く実装されるか確認します。
python manage.py runserver
# http://127.0.0.1:8000/
ジャンゴ(django)のいんんストールと設定が無事に終ったら下記のようにジャンゴ(django)が基本的提供する基本画面が見えます。
完了
これでジャンゴ(django)のコマンドを使ってプロジェクトを生成して開始する方法についてみてみました。簡単にプロジェクトのフォルダ構造の説明や設定についてもみてみました。また、今後使うmysqlとの連動やローカルでテストするためジャンゴ(django)が基本的提供してるウェブサーバーを使ってプロジェクトを実行してみました。
じゃ、開発する準備ができました。ジャンゴ(django)を使って開発を始めて見ましょう!
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。