Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbian 8.0(NOOBS Ver1.9.2)を使用して開発中。

【スポンサーリンク】

Djangoの使い方 (その1)

【スポンサーリンク】

今回はpythonのWebアプリのフレームワークの使い方を紹介します。とても簡単に早くWebアプリを作れますので、重宝します。少し長くなりますが、長いだけで難しくありませんので、読み進めて見てください。IoTしたい方は必見です。

作成するWebアプリの内容、使用するソフトウェアのバージョン

テーブルの中にデータを表示するWebアプリを作成します。pythondjangoは下記のバージョンを使用します。

python 3.4.2
django 1.10.4

djangoのインストール

まずはdjangoをインストールします。下記のpipコマンドを実行してください。

sudo pip3 install django

pip3がない場合は、下記コマンドでインストールしてください。

sudo easy_install3 -U pip

Djangoプロジェクトの作成

それでは、プロジェクトを作成しましょう。Raspberry Piのターミナルで下記のコマンドを実行します。

django-admin.py startproject プロジェクト名(例:djtest)

(今回プロジェクト名はdjtestとしました。)

djtestフォルダが自動生成されますので、cdコマンドで移動します。

cd djtest

(以降、python3 manage.py … というコマンドを何回か実行します。
その際は必ず、このフォルダに移動した状態で実行してください。)

次にアプリケーションフォルダを下記のコマンドで作成します。(djtestフォルダに移動した状態で実行してください)

django-admin.py startapp アプリケーション名(webpi)

(今回アプリケーション名はwebpiとしました。)

このふたつのコマンドでプロジェクト/アプリケーションに必要なベースフォルダ/ファイルが自動生成されます。

データベースの構築

Webフレームワークでは、データベースを使用してデータを管理することが多く、Djangoでもデータベースを使用します。データベースの構築はしますが、あまりデータベースを意識せずにコードを書くことができるようになっています。

データベースはデフォルトで、sqlite3を使うように設定されています。(設定で、mysqlpostgresqlに変更可能です。)sqlite3であれば特に何も設定しなくても、下記のmigrateコマンドでデータベースを構築できます。

python3 manage.py migrate

データベースが構築され、djtestフォルダ内に、db.sqlite3というファイルが生成されますので、確認してください。

データベースのスーパーユーザーの設定

データベースの管理者(スーパーユーザー)を、下記のcreatesuperuserコマンドで
登録します。ユーザー名やパスワードは任意で構いません。下記は一例です。

python3 manage.py createsuperuser

・ユーザー名: admin
・メールアドレス: pi@pi.com
・パスワード: raspberrypi ※あまり短いとエラーになります。
・パスワード(再入力): raspberrypi

setting.pyの設定(djtest→djtest→setting.pyファイルの編集)

djangoの設定ファイルを編集し、ホスト名や今回作成するアプリを登録します。djtest→djtest→setting.pyのファイルを開くと、ALLOWED_HOSTS = [] と記載されている箇所があります。この中に許可するホスト名を記載します。

ALLOWED_HOSTS = ['xxx.xxx.xxx.xxx']

※xxx.xxx.xxx.xxxのIPアドレスはRaspberryPiのIPアドレスになりますので注意してください。

また、INSTALLED_APPSの中に今から作成するアプリ名を追加します('webpi'を追加)。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'webpi',
]

ファイルの一番最後に下記も追加しておいてください。bootstrap等のjsファイル等を格納するパスの設定です。次回、詳しく説明します。

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

動作確認

下記コマンドでWebサーバーを起動します。

python3 manage.py runserver xxx.xxx.xxx.xxx:8000

※xxx.xxx.xxx.xxxのIPアドレスはRaspberryPiのIPアドレスです。

RaspberryPiと接続可能な同一ネットワークにいるWindowsPC等で、ブラウザを開き、アドレスバーに "http://xxx.xxx.xxx.xxx:8000"と入力して、Enterキーを押します。ポート番号を入れるのを忘れずに。

It Worked!と記載された下記のテストページが表示されれば、プロジェクトのセットアップは完了です。

f:id:raspberrypi:20161223171243j:plain

 

次回は、djangoでコードを書いていきます。