[Raspberry Piで簡単IoT] サーバ構築編~tornadoの雛形~

概要

Raspberry Pi 4でrestAPIを受け付けるサーバを構築します。

サーバ構築方法は色々とありますが、一番手っ取り早く作れるのは、Tornadoというwebフレームワークを用いる方法だと思います。Tornadoは、Pythonで書かれたWebフレームワークで、非同期通信ライブラリです。(あまり深く考えず、とりあえず使ってみましょう!)

備忘録も兼ねて、tornadoを用いたソースコードと確認方法の雛形を残しておきます。

ソースコード

雛形はこんな感じです。とてもシンプルですね。これを雛形にして、rest通信を受けた時に行いたい処理を記載していくだけです。書き終わったら、一先ずserver.pyという名前で保存しましょう。名前は何でも良いですが。

※Raspberry pi 4以外でも使えます。
※python2 , python3の両方に対応するように書いています。

#!/bin/env python (python3を使う場合は3にしてください)
# coding: utf-8

import os
import tornado.ioloop
import tornado.web
import tornado.httpserver
import traceback

try:
    import asyncio
    #Python 3
except ImportError:
    asyncio = None
    #python 2
    
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        #ここにgetを受けた時に実行したい処理を書く

    def post(self):
        #ここにpostを受けた時に実行したい処理を書く
        
    def ***(self):
    	#ここに***を受けた時に実行したい処理を書く

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    
    if asyncio is not None:
        asyncio.set_event_loop(asyncio.new_event_loop())
    application.listen(8080) #ここは任意のポート番号を記載
    tornado.ioloop.IOLoop.current().start()

テスト方法

まずは事前準備としてtornadoをインストールする必要があります。ターミナル画面から下記コマンドを実行してください。一度実行すれば、その後は必要ありません。

$sudo pip install tornado
or
$sudo pip3 install tornado

これだけです。そして、

$python server.py
or
$python3 server.py

という感じで、プログラムを実行します。

この状態で、httpリクエストを送ってみましょう。
簡単にhttpリクエストを試せるのは、chromeアプリにもなっているpostmanだと思います。(  https://www.postman.com/  )

raspberry piのipアドレスは、

$ifconfig

で調べてくださいね。ローカルネットワークの外からたたきたい時は、ルータのポート転送の設定をする必要があります。そちらについてはこちら。

[Raspberry Piで簡単IoT] サーバ構築編~ポート転送~

以上、とても簡単なhttpサーバの構築方法でした。

投稿者: コロッケ太郎

妻と息子と3人暮らし。週末に家族で遊びに出かけることと子供の昼寝に付き添って小説を読むことと美味しいコロッケを探求することがささやかな楽しみ。