LoginSignup
4
11

More than 5 years have passed since last update.

PythonでWebアプリ入門(Flask編)

Last updated at Posted at 2018-08-08

唐突にWebアプリ作成に興味を持ったので,FlaskでチュートリアルのQuickstartを読んで実装していく.
(参考元 http://flask.pocoo.org/docs/1.0/quickstart/#quickstart )
この記事を書くとき,筆者はHTTPとHTTPSの違いを少し知ってるくらいの知識.

  • 環境
    • OS : Windows10 (2018/8/8最新version)
    • Python: 3.6.6
    • Flask : 1.0.2

とりあえずWeb上に文字を出してみる.

Quickstartのサンプルコードを実装する.

hello.py
# coding: utf-8


from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello():
    return 'Hello world!'

上記のコードを保存したのち,コンソール上で

$ set FLASK_APP=hello.py
$ flask run

を実行したのち,ウェブブラウザでhttp://localhost:5000にアクセスする.

image.png

表示する文字をurlに入力された文字によって変更させたい場合,hello.pyを以下のように変更する.

hello.py

# coding: utf-8


from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello():
    return 'Hello world!'


@app.route('/<username>')
def name(username):
    return 'Hello {}!'.format(username)

変更したのち,http://localhost:5000/yaruoにアクセスする.
image.png

ルートを指定するときに<>で囲まれた文字列(このときはusername)がPython上で扱える変数として認識されるっぽい.

最後に,表示させるhtmlのテンプレートを表示してみる.

hello.py
# coding: utf-8


from flask import Flask, render_template
app = Flask(__name__)


@app.route('/')
@app.route('/<name>')
def hello(name=None):
    return render_template('hello.html', title='flask test', name=name)
hello.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>{{ title }}</title>
</head>
<body>

    {% if name %}
        <h1>Hello {{ name }}!</h1>
    {% else %}
         <h1>Hello World!</h1>
    {% endif %}

</body>
</html>

hello.htmlは以下のディレクトリに保存する.

application/
│
├ hello.py
├ template/
│ └ hello.html

image.png

タブのタイトルが変わって文字も太くなった.

他の使い方や機能をこれから勉強していく予定

4
11
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
4
11