[WEBアプリ開発] PythonアプリフレームワークBottleで、ID・パスワード認証付きのWebサーバを作る

Bottle
けんろう
けんろう

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アプリの作り方を勉強するなら、この本! /

コメント

タイトルとURLをコピーしました