ホーム >  Python >  VagrantのDjangoで作るWebアプリケーション(その2 プロジェクトの初期設定)

投稿日:   |  最終更新日:

VagrantのDjangoで作るWebアプリケーション(その2 プロジェクトの初期設定)

Python

Vagrantの中に構築したDjangoを初期設定します。

Djangoのプロジェクト・DBの初期設定

Djangoを初期設定し、データベースを初期化します。初期設定することにより、Djangoを日本語化することができます。また、DBを初期化すれば、データベース「app1_db」に管理用テーブルが生成されます。

準備

Vagrantでゲスト環境(仮想環境)を作ります。ゲスト環境の中にDjangoを構築します。その前に、以下の作業を終わらせましょう。

①Virtualboxをインストールします。Virtualboxのインストールまでで結構です。

VirtualBoxをインストールする for Ubuntu

②Vagrantをインストールします。centos7環境を作りますので、Vagrantのインストールのみ済ませてください。

Vagrantをインストールしてテスト環境を作る for Ubuntu

③Vagrantにcentos7環境を作ります。

VagrantでCentOS7 + Python + Django環境を作る(その1 仮想環境作成)

④VagrantにPython3をインストールし、「pyenv + virtalenv」を作ります。

VagrantでCentOS7 + Python + Django環境を作る(その2 Pythonとpyenv + virtalenv)

⑤VagrantにMariaDBをインストールして、DBを構築します。

VagrantでCentOS7 + Python + Django環境を作る(その3 MariaDB)

⑥VagrantにWebアプリケーションサーバーのnginxをインストールします。

VagrantでCentOS7 + Python + Django環境を作る(その4 nginx)

⑦VagrantにDjangoをインストールします。

VagrantでCentOS7 + Python + Django環境を作る(その5 Django + uWSGI)

⑧VagrantにDjangoプロジェクト生成します。

VagrantでDjangoで作るWebアプリケーションを作る(その1 プロジェクト生成)

ホスト環境

OS Ubuntu 16.04.1 LTS 64bit
Virtualbox 5.1
Vagrant 1.9.5

ゲスト環境

OS CentOS 7.1.1503
Python 3.6.1
pip 9.0.1
Web フレームワーク Django 1.11.2
データベース MariaDB 5.5.52-1.el7.x86_64
Webサーバ nginx 1.13.2

Vagrantへログイン

①【ホスト環境】端末を開き、前回構築したVagrantのディレクトリまで移動します。

cd vagrant/django_apps/

②【ホスト環境】仮想マシンを起動します。

vagrant up

③【ホスト環境】ログインします。

vagrant ssh

firewall停止

①デフォルトで用意されているindex.htmlにHTTPアクセスできるか確認するため、firewalldを停止状態にします。

sudo systemctl stop firewalld
sudo systemctl disable firawalld

pyvenvで作成した仮想環境にログイン

前回、pyenvで仮想環境「venv_app1」を作成しました。ここにログインします。

①【ホスト環境】Vagrantの中の「venv_app1」ディレクトリまで移動します。

cd /vagrant/django_apps/venv_app1/

②【ゲスト環境】「venv_app1」を有効化します。

source ./bin/activate

以下のようなプロンプトが表示されれば有効化成功です。

(venv_app1) [vagrant@localhost venv_app1]$ 

Djanogプロジェクトの初期設定

①「/vagrant/django_apps/」へディレクトリを移動します。

cd /vagrant/django_apps/

②pj1/pj1/settings.pyを変更します。

vi pj1/pj1/settings.py

データベースは、デフォルトでSQLiteが設定されています。これをMySQLに変更します。

変更前

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

変更後

 DATABASES = {
    'default': {
        #'ENGINE': 'django.db.backends.sqlieete3',
        #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'app1_db',
        'USER': 'app1_user',
        'PASSWORD': 'app1_passwd',
        'HOST': 'localhost',
        'PORT': '3306',
    }
 }

言語設定を日本語に変更します。

変更前

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

変更後

# LANGUAGE_CODE = 'en-us'

# TIME_ZONE = 'UTC'

LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

ESCキーを押し、「:wq」で保存終了します。

簡易Webサーバ起動

①簡易サーバを起動します。

python pj1/manage.py runserver 0.0.0.0:8000

②ホスト環境のブラウザから、以下のURLを入力します。

http://192.168.33.15:8000

※「192.168.33.15」は、vagrantに設定したipアドレスです。

③Djangoで作成されたデフォルトのWebページが、日本語表示になったことを確認します。

データベースを初期化

①データベースを初期化するため以下のコマンドを実行します。実行するとSQL文が発行され、データベース「app1_db」に管理用テーブルが生成されます。

python pj1/manage.py migrate

②管理者ユーザを追加します。下記コマンドを実行することで対話モードを実行することができます。

python pj1/manage.py createsuperuser

ここで入力したidとパスワードを覚えておきましょう。

Username (leave blank to use 'vagrant'): admin
Email address: admin@admin.com
Password: 
Password (again): 

③MariaDBにログインして確認します。データベースの中にDjango用テーブルが作成されていることが確認できます。MySQLにログインします。

mysql -u app1_user -papp1_passwd

テーブルを一覧表示します。

USE app1_db;
SHOW TABLES;
+----------------------------+
| Tables_in_app1_db          |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
+----------------------------+
10 rows in set (0.00 sec)

④簡易サーバを起動します。

python pj1/manage.py runserver 0.0.0.0:8000

⑤ホスト環境のブラウザから、以下のURLを入力します。

http://192.168.33.15:8000/admin/

⑥以下の管理サイトが表示されます。

⑦②で入力した管理者情報(ここではID:admin)を入力すると、管理サイトに入ることができます。

次回

次回はDjangoのモデルを生成します。

VagrantでDjangoで作るWebアプリケーションを作る(その3 モデルの作成)

トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター、フロントエンドエンジニア 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 20

最近の投稿
人気記事
カテゴリー
広告