1

私は Raspberry Pi を (非常に単純な) 家庭用気象ステーションとして使用しています。

私は現在、実行時に温度の読み取り値を取得し、結果を Google Docs API を介して Google スプレッドシートに新しい行として投稿する小さな python スクリプトを持っています。この python スクリプトはルートとして実行する必要があります。現在、このスクリプトをスーパーユーザーの crontab で 1 時間ごとに実行するようにスケジュールすることで、良い結果が得られています。

また、この Pi を取得して Nginix と uWsgi を実行し、Django を利用した Web サイトを提供しています。Google スプレッドシートに加えて、ローカル データベースに温度の記録を開始したいと考えています。これは、私が最もよく知っている Django の ORM を介して行いたいと考えています。

私には 2 つの具体的な目標があります。

  1. 新しく取得した温度測定値をローカル DB (Django ORM を使用) と Google スプレッドシートの両方に投稿する、定期的にスケジュールされたタスクを設定します。
  2. リモートユーザーが「今すぐ体温を測定」し、(Web ページを介して) 結果を報告し、結果をサーバー側の DB に挿入できるようにする Web ページ (おそらくログインが必要) を提供します。

私の質問は次のとおりです。温度プローブにアクセスするコードはルートとして実行する必要があることを知っている場合、これを行う最善の方法は何ですか?

#1については、質問は次のように要約できると思います:「Djangoシェルのように感じる」python環境をロードする最良の方法は、同じインポート(特にORMなど)をすべて簡単に実行できるということですか?それができれば、スプレッドシートのアップロードと DB への書き込みの両方を行う新しいスクリプトを作成できます。スーパーユーザーのcrontabで実行するようにスケジュールされたDjangoの「コマンド」を介してこれを行うことができますか/すべきですか? それとも、先に進み、適切な Django 固有のモジュールをロードする通常の古い python スクリプトを介してこれを行う必要がありますか?

#2については、温度センサーの読み取り値の「ルートとして実行する必要がある」問題を処理する方法についての提案を探していました。Django プロセス全体をルートとして実行したくないことは明らかです。ここで私の最良の選択肢は何ですか?

ありがとう。

4

1 に答える 1