けんろう
Raspberry Piを使い、
Bottleで、ID、パスワード認証付きのWebサーバを作る方法を紹介します。
今回作成するアプリ
ブラウザー上で、ID、パスワードを入力させて、認証結果を表示するサイトを作ります。
事前準備
Python3、Bottleはインストール済みという前提です。
インストールしていない人は、Python3、Bottleをインストールしてください。
サンプルコード
コンソールを立ち上げて、以下のpythonコードを、app.pyで保存してください。
# -*- coding: utf-8 -*-
from bottle import route, run, request
import os
@route("/login")
def login():
return """
<form action="/login" method="post">
Username: <input name="username" type="text" />
Password: <input name="password" type="password" />
<input value="Login" type="submit" />
</form>
"""
@route("/login", method="POST")
def do_login():
username = request.forms.get("username")
password = request.forms.get("password")
if check_login(username, password):
return "<p>Your login infomation was correct.</p>"
else:
return "<p>Login failed.</p>"
def check_login(username, password):
if username == "user" and password == "pass":
return True
else:
return False
run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))
サーバ起動方法
コンソールを立ち上げて、app.pyが保存されているディレクトリに移動します。
以下のコマンドを入力します。
$ python3 app.py
\ ラズパイなら簡単に最新のPython環境を構築できます /
リンク
ブラウザー起動方法
ブラウザを開いてください
ブラウザのurl画面に、以下の内容を入力してください。
http://localhost:5000/login
ブラウザ上に、ID、パスワードを入力する画面が出てきますので、以下を入力してください。「login」ボタンを押してください。
Username: user
Password: pass
そうすると、以下の画面が表示されます。
Your login infomation was correct.
次に、不正なIDやパスワードが使われた場合を確かめてみます。
もう一度、以下のurlを表示させます。
http://localhost:5000/login
ブラウザ上に、ID、パスワードを入力する画面が出てきますので、以下を入力してください。
Username: user2
Password: pass
そうすると、以下の画面が表示されます。
Login failed.
Bottleを使ったサンプルコードは、他にもあります。
まとめ
今回は、Bottleを使った例として、ID、パスワード認証付きのWebサーバを作成する方法を紹介しました。
\ Webアプリの作り方を勉強するなら、この本! /
リンク
コメント