ホーム >  Python >  VagrantのDjangoで作るWebアプリケーション(その4 レコード情報を出力)

投稿日:

VagrantのDjangoで作るWebアプリケーション(その4 レコード情報を出力)

Python

Vagrantの中に構築したDjangoのレコード情報を、テキストとして出力します。

データベースのレコード情報を出力

Djangoでデータベースを扱っていると、その時点の情報を書き出す場面が出て来ます。

Djangoで出力できる形式

Djangoではデータベースのレコード情報を、以下のいずれかの形式で書き出す機能があります。

  • JSON
  • XML
  • YAML

準備

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 プロジェクト生成)

⑨生成したプロジェクトを初期設定します。また、データベースを初期化します。

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

⑩アプリケーションを生成し、モデルを作成します。

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

ホスト環境

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]$ 

データベースのレコード情報をテキストファイルに書き出す

①以下のディレクトリに移動します。

cd /vagrant/django_apps/

②ディレクトリを作成します。

mkdir pj1/app1/dumpdata

③JSON形式で書き出します。

python pj1/manage.py dumpdata app1 --format=json --indent=2 -o pj1/app1/dumpdata/ap1_db_dump.json

④出力データ「ap1_db_dump.json」の中身を表示します。

cat pj1/app1/dumpdata/ap1_db_dump.json
[
{
  "model": "app1.ipaddress",
  "pk": 1,
  "fields": {
    "ipaddress": "192.168.0.0",
    "status": "not_available",
    "description": "Network address"
  }
},
{
  "model": "app1.ipaddress",
  "pk": 2,
  "fields": {
    "ipaddress": "192.168.0.1",
    "status": "available",
    "description": ""
  }
},
{
  "model": "app1.ipaddress",
  "pk": 3,
  "fields": {
    "ipaddress": "192.168.0.2",
    "status": "available",
    "description": ""
  }
}
]

作成されたファイルをgitで管理することができます。そうすれば、レコード情報を時系列で管理することができます。

書き出したファイルを読み込みたい場合は、下記のコマンドを実行します。

python pj1/manage.py loaddata pj1/app1/dumpdata/ap1_db_dump.json

次回

次回はDjangoのViewを作成します。

VagrantでDjangoで作るWebアプリケーションを作る(その5 Viewの作成)

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

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

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