Python3.6+Django2.2のインストール・アプリ生成【Djangoファイルの基本構成】

今更ですが、最近Pythonのフレームワーク Django でアプリケーション開発をしてみました。CentOS7+Apache2.4の環境で、Djangoのアプリを生成したので備忘録的に基本構成を記しておこうと思います。

今回は、Python3, Djangoのインストールから表示までです。

Python ・ Djangoのインストール

自前の環境ではpython2.7がシステムでインストールされており、利用中で削除できなかったのでpython3系を追加でインストールしました。

Python3インストール

まず、インストール前のバージョン確認

追加でpython3をインストールします。Python3系は、yumのデフォルトのリポジトリに入っておらず、IUS Community Projectのリポジトリを追加する必要があります。
(IUSとは、Python等の最新バージョンの RPM packages を配布しているコミュニティです)

インストール後のバージョン確認

Djangoのインストール

新しく入れた3系のpythonでdjangoをインストールします。

これで、Python3, Djangoのインストールはとりあえず完了です。

WSGIインストール

ApacheでPythonを動かすために、mod_wsgiをインストールします。

デフォルトのディレクトリでも良いのですが、一応任意の場所に移動しておきます。
Apacheのhttpd.confなどで

WSGIPythonPathは、インクルードパスなのでコロン繋ぎで複数指定できる。
ただし、上記の設定はvhost内には書けない模様。

Djangoでのプロジェクト生成

Django はまず、「プロジェクト」という器を用意し、その中に「アプリケーション」を複数作れるような仕組みになっています。

Djangoには django-admin と manage.py の2種類の管理コマンドユーティリティがあります。これらを使ってプロジェクト・アプリケーションを生成します。

Djangoでのプロジェクト生成(通常)

上記のコマンドだけでプロジェクトが生成されますので非常に簡単にプロジェクトが生成できますが、このまま生成してしまうと、プロジェクト内にプロジェクト名のファイルが新たに作られてしまいます。

それでもよいのですが、その中にプロジェクト固有の設定ファイル類が作成されてしまい、名称の重なりによる若干の分かりづらさがあります。

そこで、プロジェクト用のディレクトリを生成してから、第一パラメータに内部のディレクトリ名を指定して、第二パラメータでプロジェクトの作成済みディレクトリを指定し、プロジェクトを生成することが出来ます。

Djangoでのプロジェクト生成(内部ディレクトリ名指定)

生成されたプロジェクト内のファイル構成は以下のようになりました。

プロジェクト内に移動して、アプリケーションを生成する。

Djangoプロジェクト生成時に出来るファイル

manage.py コマンドラインからさまざまな操作を行うためのファイル
settings.py プロジェクト固有の設定用ファイル
urls.py URLパターンとビューのマッチング情報を記載するファイル
wsgi.py WSGIインターフェースに対応したアプリケーションサーバからDjangoプロジェクトを起動する為のファイル

Djangoアプリケーション生成時に出来るファイル

admin.py 管理サイトに関する記述をする
apps.py アプリケーションを識別するための設定ファイル
models.py モデルの定義やビジネスロジックを記載するファイル
tests.py テストを記述するファイル
views.py ビューを記述するファイル

インストール直後のdjangoは、デフォルトでDBはsqlite3を選択中となっています。
sqlite3の指定バージョン(今回は3.8.0以上)が入っていないとエラーとなります。

とりあえずdjangoの表示確認までしたい場合は、setting.pyの75行目付近の以下設定を一時的にコメントアウトすると表示までは確認出来るようになります。

setting.py

ブラウザからの表示

ちょっと細かな設定で記載が漏れているかもしれませんが、おおよそ上記の流れで設定してApacheを再起動させたらブラウザから表示確認ができました。

次回からはもう少し細かな設定などを記載しようと思います。