LoginSignup
3
6

More than 1 year has passed since last update.

Flaskチートシート〈初心者向け〉

Last updated at Posted at 2022-02-05

flaskを触り始めたので、自分向けのチートシートとして書き留めてます。

Flaskとは?

Pythonで利用できる『Webアプリケーションフレームワーク』のこと。

Flaskのセットアップ

% pip3 install flask

以上。

FlaskのHello World

hello.py
from flask import Flask       #Flaskのインポート#お約束
app = Flask(__name__)     #Flaskのクラスのインスタンス化#お約束

@app.route('/')             #「デコレーター」という機能を使ってルーティングの設定(‘/’を指定はルートへのアクセスを意味します)
def index():                   #デコレーターで指定したパスにアクセスされた際に動作する関数を定義
    return 'Hello World!'       #関数の戻り値がWebリクエストのレスポンスとなる

if __name__ == '__main__':    
    app.run()                   #Webアプリの実行
% python3 hello.py

テンプレート

同階層に『templates』というディレクトリを用意しその中にテンプレートファイルを配置して > return render_template(‘hello.html’, …(各種パラメータ)...) なんて書き方もできる。

main.py
from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def index():
return render_template('hello.html', title='flask test', name='honda')

if __name__ == '__main__':    
    app.run()
templates/hello.html
<!doctype html>
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <h3>Hello {{ name }}さん!</h3>
</body>
</html>

URLパラメータを使う

main.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World!'

@app.route('/hoge/<name>')  #URLパラメータとして扱うアクセスパターンを指定
def hoge(name=None):       #URLパラメータとして受け取った値を関数の引数として受け取れるようにしている
    return name

if __name__ == '__main__':    
    app.run()

GETパラメータを扱う

main.py
from flask import Flask, request      #リクエストパラメータを扱うためのモジュール
app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World!'

@app.route('/hoge')
def hoge():
    return request.args.get('name')    #『request.args.get()』メソッドでGETパラメータを取得

if __name__ == '__main__': 
    app.run()

POSTパラメータを扱う

main.py
rom flask import Flask, request       #リクエストパラメータを扱うためのモジュール
app = Flask(__name__)

@app.route('/')
def index():
    return render_template(hello.html, title=post test)

@app.route('/hoge', methods=['POST'])   #『POSTパラメータを受け取る』ための明示的な指定

def hoge():
    if request.method == 'POST':    
        name = request.form['name'] #『request.form()』メソッドでPOSTパラメータを取得
    else:
        name = 'no param'

    return name

if __name__ == '__main__':    
    app.run()
templates/hello.html
<!doctype html>
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <form method=“POST” action=“./hoge”>
        <input type=“submit” value=“送信”>
    </form>
    <h3>Hello {{ name }}さん!</h3>
</body>
</html>

JSONレスポンスを返却

main.py
from flask import Flask, jsonify   //リクエストパラメータを扱うためのモジュール
app = Flask(__name__)

@app.route(/json)
def json_res():
    return jsonify(name=sosuke,
        sex=male,
        age=20

if __name__ == '__main__':    
    app.run()

3
6
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
6