唐突に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
にアクセスする.
表示する文字を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
にアクセスする.
ルートを指定するときに<>で囲まれた文字列(このときは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
タブのタイトルが変わって文字も太くなった.
他の使い方や機能をこれから勉強していく予定