LoginSignup
3
4

More than 1 year has passed since last update.

Flask入門①~文字の表示~

Last updated at Posted at 2021-12-07

はじめに

python自体は触れていたけど、フレームワークの知識が全くないことに気づきました。
まずは代表的なDjangoの説明を見てみたけど、いきなりこれは…ハードルが高い!と開始2秒で撃沈:sob:

フレームワーク触るのやめようと思ったけど、調べていたら「Flask」なるものを発見。
機能がもっとシンプルだし、自分でもまだ何とかなりそうと期待を持てたので学ぶことにしました。

flaskのインストール

conda install flask

普段のモジュールをcondaで管理しているので、pipではなくこっちでインストール(condaでも実施確認)。
環境は以下の通り。

  • windows10
  • flask2.0.2
  • python3.8.10

動作確認

flask1.py 
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#flaskモジュールのインポート
from flask import Flask

#flaskオブジェクトの作成
app = Flask(__name__)

#「/」にアクセスがあったときに、'Hello world'を表示
@app.route('/')
def index():
    return 'Hello world'

#pythonで実行されたときに処理をする
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

appという名前のオブジェクトを作成して、実行内容を書く(ここでは'Hello world'の表示)。スクリプトが実行されると、'Hello world'が表示される。

ブラウザでlocalhost:5000にアクセスすると、表示されていることを確認。
image.png

応用~おみくじの作成~

まずは簡単なものからスタート。ランダムに運勢を出してくれる、おみくじを作成してみました。

flask2.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#flaskモジュールのインポート
from flask import Flask

#flaskオブジェクトの作成
app = Flask(__name__)

#「/」にアクセスがあったときに、'Hello world'を表示
@app.route('/')
def index():
    import random

    #おみくじの種類
    omikuzis = ['大吉','吉','中吉','小吉','末吉','凶']

    #番号をランダムに選ぶ
    number = random.randint(0,6)

    #おみくじを表示
    omikuzi = omikuzis[number]
    print('今日の運勢は{}です。'.format(omikuzi))

#pythonで実行されたときに処理をする
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

まずは上記のコードで実施したらエラー画面が出ました。
image.png

説明分を読むと、returnで実行していないことが原因らしい。そこで次のようにコードを書き換えてみました。

#おみくじを表示
omikuzi = omikuzis[number]
return '今日の運勢は'+omikuzi+'です。'

これで再度localhost:5000にアクセスしたら、ちゃんと運勢が表示されてました。

image.png

吉ということでそこそこよさそう。もう1回実施してみた。
image.png

たまには小吉になることもあるようです。

まとめ

  • Flaskが起動できた
  • おみくじマシン作れた

次はhtmlの操作を扱ってみようと思います。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4