Flaskで英単語を数えるアプリケーションを動かしてみた
Python用のマイクロフレームワークFlaskを使って、簡単なアプリケーションを動かしてみたのでご紹介します。
Flaskのインストール
pip install -U Flask
やってみた
構成
├── application.py ├── static │ └── css │ └── bootstrap.min.css └── templates └── main.html
英単語と数字をカウントするプログラム
テキストを受け取ると、英単語と数字をカウントする内容のアプリケーションです。
application.py
from flask import Flask, render_template, request import re app = Flask(__name__) def count_word(text): words = re.findall(r'[a-z0-9\\’\\\']+', text.lower()) return len(words) @app.route('/', methods=['POST', 'GET']) def home(): total = '' if request.method == 'POST': text = request.form['text'] total = count_word(text) return render_template('main.html', total=total, sentence=text) return render_template('main.html', total=total) if __name__ == "__main__": app.run(debug=True)
ページ
Flaskはtemplates
フォルダからテンプレートを探しますので、templates
フォルダに配置します。また、CSSやJavaScriptはstatic
フォルダ配下に配置します。今回はbootstrap.min.css
を以下のように置いています。
├── static │ └── css │ └── bootstrap.min.css
application.py では23,25行目のrender_template
で main.html を読み込んでいます。
main.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>English Word Count</title> <!-- Bootstrap --> <link href="/static/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <center> <h1>English Word Count</h1> <div class="form-group"> <form method="POST" action="/"> <textarea name="text" cols="100" rows="5" placeholder="I love pullups!">{{sentence}}</textarea><br> <input class="btn btn-primary" name="text" type="submit" value="Count Words"> </form><br> <font size="5">{{total}} words</font> </center> </body> </html>
ここで、変数を使用しています。
例)
<font size="5">{{total}} words</font>
{{total}}
に、application.py で以下のようにして変数を渡しています。
return render_template('main.html', total=total)
実行
アプリケーションを起動
$ python application.py
アクセスする
http://127.0.0.1:5000
まとめ
Pyhonのウェブフレームワーク Flaskを触ってみました。興味がある方はFlaskのチュートリアルも試してみてください。
・日本語 Flask | クイックスタート