知識の枝

"All is well"

Raspberry PiでDjangoを動かす

約179日前 2021年5月31日23:40
デジタル
Django Raspberry Pi

改訂履歴


2021/5/31 投稿

1. 背景


これまでいくつかのWEBアプリを作ってきました。
(ページ上部のAppsから見れます)


2021年のゴールデンウィークにラズパイ上でDjangoを動かせると知り、早速ラズパイを購入。
ネットで調べながらDjangoを導入してみました。

無事動作するところまで確認が取れましたので、記事として残したいと思います。


2. ゴール


Raspberry PiでDjangoを動かし、Djangoのページに別のパソコンからアクセスする。


3. はじめに


まず私が購入したラズパイの素性です。
Amazonで¥16,800-で購入しました。

TRASKIT Raspberry Pi 4 Model B /ラズベリーパイ4B(8GB RAM)技適マーク付/MicroSDHCカード128GB

まぁどれを買っても良いと思います。

準備したものは下記の通りです。
・上記のラズパイ
・キーボード
・マウス
・モニタ
・動作確認用PC


手元にラズパイが届いたらさっそく始めましょう!


4. ラズパイにDjango


4.1 - ラズパイのセットアップ


まずラズパイを組み立てましょう。

組み立てると言っても附属のケースに組み付けるだけなので簡単です。


次にマウス、キーボート、モニタ、電源ケーブルをつなぎます。
無線マウスも使用可能です。

HDMIケーブルを接続する際に1点注意です。
ラズパイには2つのHDMI端子があります。
「電源コネクタ側の端子」と接続して下さい。



もう一方の端子に接続すると、ラズパイは起動するのですが虹色画面から進まなくなります。


では電源を入れましょう。
ファンが回り始めます。


虹色の画面が表示され、しばらくするとセットアップ画面になります。

Raspberry Pi OSを選択します。
(インストールに結構時間がかかりました)



インストールが終わるとホーム画面が表示されます。





4.2 - Apacheの導入


下記のサイトを参考にしました。
簡単な英語が読めるレベルなら苦労しないと思います。
How to Setup a Raspberry Pi Apache Web Server

一応、日本語訳しながら解説します。
基本的には上記リンク先に沿った内容です。


ターミナルを起動し下記コマンドを実行下さい。
ターミナルはホーム画面の左上にあります。



起動すると黒い画面が表示されます。




パッケージリストを最新版にしておきます。
sudo apt-get update
sudo apt-get upgrade
けっこう時間が掛かります。

続いて下記コマンドを実行し、Apacheをインストールします。
sudo apt install apache2 -y


インストールが完了するとApacheウェブサーバーがもう動き始めています。

動作を確認するにはまずラズパイのIPアドレスを知る必要があります。
下記コマンドでIPアドレスを確認可能です。
hostname -I


表示されたIPアドレスをウェブブラウザに打ち込んでみましょう。
同じLANに接続している端末であればウェブページを表示することが可能です。

Apacheのデフォルトページが表示されたら動作確認OKです。


4.3 - Apacheの設定


ここから先は下記サイトを参考に勧めます。
Installing Django on your Raspberry Pi


下記コマンドを実行し、ApacheとPythonが連携できるようにします。
Web Server Gateway Interface (WSGI)という「ウェブサーバー」と「プログラミング言語」の間を取り持つものをインストールしています。
sudo apt install libapache2-mod-wsgi-py3


続いてPython3本体、仮想環境、pipをインストールします。
sudo apt install python3 python3-venv python3-pip



各種インストールが完了したら、Django用にApacheの設定を書き換えていきます。


nanoエディタを使ってApacheの初期設定を書き換えましょう。
sudo nano /etc/apache2/sites-enabled/000-default.conf
nanoエディタでファイルを開いたら、下記コードを「</VirtualHost>」のすぐ上にコピペして下さい。
  Alias /static /home/pi/pidjango/static
<Directory /home/pi/pidjango/static>
Require all granted
</Directory>

<Directory /home/pi/pidjango/pidjango>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

WSGIDaemonProcess django python-path=/home/pi/pidjango python-home=/home/pi/pidjango/djenv
WSGIProcessGroup django
WSGIScriptAlias / /home/pi/pidjango/pidjango/wsgi.py
コピペが完了したら下記コマンドで保存します。
CTRL + XYEnter


設定を書き換えましたので、Apacheを下記コマンドで再起動します。
sudo systemctl restart apache2



4.4 - Djangoのインストール


Django用のフォルダを作り、その中にPythonの仮想環境を作ります。
mkdir -p /home/pi/pidjango/static
cd /home/pi/pidjango
python3 -m venv djenv


ここでは「pidjango」という名前のホームディレクトリを作成していますが、好きな名前で問題ありません。
名前を変更する場合は、4.3項の設定ファイルの中身も変更して合わせて下さい。


それでは作成した仮想環境に入り、Djangoをインストールしたいと思います。
下記コマンドで仮想環境に入ります。
source djenv/bin/activate
仮想環境に入ると、ターミナルの頭に「(djenv)」と付きます。

Djnagoをインストールします。
python3 -m pip install django


インストールが完了したら新規プロジェクトを作ります。
django-admin startproject pidjango .
プロジェクト名は「pidjango」となっていますが、こちらも変更可能です。
異なるプロジェクト名を使用する場合は、4.3項の設定ファイルを書き換えましょう。

Djangoのsettings.pyを少し編集します。
settings.pyをnanoエディタで開き、「ALLOWED_HOSTS」に4.2項で調べたラズパイのIPアドレスを入力します。
nano /home/pi/pidjango/pidjango/settings.py


ALLOWED_HOSTS = ["ここにIPアドレスを入力"]

入力を終えたら下記コマンドで保存します。
CTRL + XYEnter


これですべての工程が完了しました!
同じLANに接続している端末のブラウザでラズパイのIPアドレスに接続するとDjangoのあのロケット画面が表示されます!


5. さいごに


ラズパイのスクリーンショットが出来なくて文字ばかりの記事になってしまいました。
ともあれ、無事ラズパイでDjangoを動かせるようになったと思います!

ラズパイとつながったことで色々な事ができそうです!
アイデアを具現化しましょう!