SlideShare a Scribd company logo
1 of 19
Download to read offline
Flask入門
@aoshiman
2013-07-06 Shizuoka.py #2
13年7月6日土曜日
自己紹介
• 青島(@aoshiman)
• 葵区在住、清水区の食品会社に勤務(社内SE)
• 経理畑(実務10年)からのジョブチェンジ。ひょんなことから情
シスの一員に
• 会社ではVBA、プライベートでPython(2008年頃から浅く浅
く)
• Python製TwitterBotを3つ管理しています(@cookpad_recipe
など)機会があればいつかご紹介したいです
13年7月6日土曜日
Flaskとは
• PythonのWeb Application Frameworkのひ
とつ
• オーストリア人のArmin Ronacherが開発
13年7月6日土曜日
• マイクロフレームワークに属する
• WSGI(ウィスキー Web Server Gateway Interface)サポ
ート
• Werkzeug(ヴェルクツォイグ)とJinja2(ジンジャ)がベ
ース
• デコレータを多用(可能)※Flask(もっと言えばPython)
に限ったことではないが...
Flaskの特徴
13年7月6日土曜日
• 似たようなフレームワークにBottleというのがある(http://bottlepy.org)
• 軽量(1Fileフレームワーク)、書き方などはFlaskライク
Flaskに近いフレームワーク
作成して実際に動かしているもの
• https://bitbucket.org/aoshiman/webhook
• bitbucketにあるリモートリポジトリへgit pushすると同時に変更を本
番環境へ反映させるWebアプリ。bitbucketのwebhook(通知POST)
を待ち受け、通知があればgit pullさせている。
13年7月6日土曜日
• Python2.xで動作。3(3.3)は鋭意対応中でしたが ver. 0.10より正式サポート
Flaskの動作環境
個人的にはFlaskが3をサポートしたらPython3をや
り始めようと思っていたので頑張ります
13年7月6日土曜日
どのように書くのか - Hello Flask編 -
# -*- coding: utf-8 -*-
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hello Flask"
if __name__ == '__main__':
app.run(debug=True)
flaskモジュールからFlaskクラスをイン
ポートする
Flaskクラスのインスタンスを作りapp
へ代入
Hello Flaskを表示させるindex関数を
routeデコレータでurlマッピング
デバッグモードで実行
(127.0.0.1:5000で待受)
13年7月6日土曜日
どのように書くのか - サブページ編 -
# -*- coding: utf-8 -*-
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hello Flask"
@app.route("/sub")
def sub():
return "Hello SubPage"
if __name__ == '__main__':
app.run(debug=True) デバッグモードで実行
(127.0.0.1:5000で待受)
Hello SubPageを表示させるsub関数
をrouteデコレータでurlマッピング
(http://127.0.0.1:5000/sub)
13年7月6日土曜日
どのように書くのか - 可変ページ編 -
@app.route("/sub")
def sub():
return "Hello SubPage"
@app.route("/user/<username>")
def get_user(username):
return "Welcome %s's Page" % username
if __name__ == '__main__':
app.run(debug=True)
usernameを表示させるget_user関数
をrouteデコレータでurlマッピング
(http://127.0.0.1:5000/user/
username)
13年7月6日土曜日
これらを踏まえて20行くらいの小さ
なアプリを作ってみる
13年7月6日土曜日
どんなもの?
13年7月6日土曜日
事実婚 支援サイト
週刊文春 不買運動支援サイト
13年7月6日土曜日
サーバの稼働状況をリアルタイムに表
示させるWebアプリ
13年7月6日土曜日
凄そう!? そうでもない
13年7月6日土曜日
• http://example.com/infoにアクセスしたらtopコマ
ンド実行して結果をブラウザに表示
• なんちゃってリアルタイムの実現にmata http-
equiv= refresh を利用。デフォルトで3秒、/info?
refresh=n(秒)で間隔を調整可能
• http://example.com/にアクセスしたら/infoへリダ
イレクト
topコマンドを叩いて結果をブラウザに流し
こむWebアプリ
13年7月6日土曜日
今回作ったもの
https://bitbucket.org/aoshiman/
top-info
ここをこうしたら良いよとかございましたら是非教
えて下さい
13年7月6日土曜日
• 日本語解説は少ない((個人的見解ですが)少ない日本語解説は当たりが多い)
Flaskを学んでいく上での注意点
私の場合は
• Flask公式ドキュメント(MailingListアーカイブ含む)を活用
• stackoverflowのFlaskタグを追いかける
• Githubのコード検索←最近はこれを重視
結構苦労するがBottleよりはマシ
13年7月6日土曜日
最後に
皆さんの周りに「Pythonでプログラミングを勉強し始めた
いんだけど・・」という変わった素晴らしい方がいらっしゃ
ったら是非下記本をオススメしてみて下さい
個人的には(ビギナー向けに)かなりオススメです
この本の後、一般的に勧められている本にステップ
アップするのがよいかと考えます
13年7月6日土曜日
まとめ
Flaskは(日本語情報等に)苦労するかもしれな
いが、やり続ければ、きっと楽しく、やめられ
ないフレームワークになると思います
13年7月6日土曜日

More Related Content

What's hot

夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
JOYZO
 
ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706
拓 小林
 
Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。
KyutatsuNishiura
 
Subversionにまつわる試行錯誤 090627.Key
Subversionにまつわる試行錯誤 090627.KeySubversionにまつわる試行錯誤 090627.Key
Subversionにまつわる試行錯誤 090627.Key
kazukichop
 

What's hot (17)

マイクロサービスとOSSのおいしい関係
マイクロサービスとOSSのおいしい関係マイクロサービスとOSSのおいしい関係
マイクロサービスとOSSのおいしい関係
 
S14 t0 introduction
S14 t0 introductionS14 t0 introduction
S14 t0 introduction
 
kintone Café 新潟 Vol.2 LT
kintone Café 新潟 Vol.2 LTkintone Café 新潟 Vol.2 LT
kintone Café 新潟 Vol.2 LT
 
(python)勉強会のすすめ
(python)勉強会のすすめ(python)勉強会のすすめ
(python)勉強会のすすめ
 
20150514 android
20150514 android20150514 android
20150514 android
 
サト研(仮) とは? - OSC 2013 Fukuoka 勉強会勉強会LT #satoken
サト研(仮) とは? - OSC 2013 Fukuoka 勉強会勉強会LT #satokenサト研(仮) とは? - OSC 2013 Fukuoka 勉強会勉強会LT #satoken
サト研(仮) とは? - OSC 2013 Fukuoka 勉強会勉強会LT #satoken
 
Two sides of Python Engineer Training Book in PyCon mini Sapporo
Two sides of Python Engineer Training Book in PyCon mini SapporoTwo sides of Python Engineer Training Book in PyCon mini Sapporo
Two sides of Python Engineer Training Book in PyCon mini Sapporo
 
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
夢か?現か?kintoneカスタマイズデモ - 未来のkintoneユーザー事例 -
 
kintone SI の楽しみ方!「kintone devCamp 2015 【A-1】ファストSIのカスタマイズ事例 -SI開発者の裏側-」
kintone SI の楽しみ方!「kintone devCamp 2015 【A-1】ファストSIのカスタマイズ事例 -SI開発者の裏側-」kintone SI の楽しみ方!「kintone devCamp 2015 【A-1】ファストSIのカスタマイズ事例 -SI開発者の裏側-」
kintone SI の楽しみ方!「kintone devCamp 2015 【A-1】ファストSIのカスタマイズ事例 -SI開発者の裏側-」
 
キーボード操作をもっと極めたいという件に関して
キーボード操作をもっと極めたいという件に関してキーボード操作をもっと極めたいという件に関して
キーボード操作をもっと極めたいという件に関して
 
ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706
 
Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。
 
kintoneハンズオン♪
kintoneハンズオン♪kintoneハンズオン♪
kintoneハンズオン♪
 
kintone Café 沖縄女子会 vol.1
kintone Café 沖縄女子会 vol.1 kintone Café 沖縄女子会 vol.1
kintone Café 沖縄女子会 vol.1
 
S20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからS20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれから
 
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnowS10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnow
 
Subversionにまつわる試行錯誤 090627.Key
Subversionにまつわる試行錯誤 090627.KeySubversionにまつわる試行錯誤 090627.Key
Subversionにまつわる試行錯誤 090627.Key
 

Similar to Flask入門

JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料
Yuuki Namikawa
 
SoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについてSoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについて
Shuichi Yukimoto
 
java-java-bpstudy-connpass
java-java-bpstudy-connpassjava-java-bpstudy-connpass
java-java-bpstudy-connpass
Haruo Sato
 
早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング
Ippei Arita
 

Similar to Flask入門 (12)

JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料JAWS-UGサミット2011春 LT資料
JAWS-UGサミット2011春 LT資料
 
ゆるかわPhp#2
ゆるかわPhp#2ゆるかわPhp#2
ゆるかわPhp#2
 
iOSでライブラリを提供する際に気をつけたいこと
iOSでライブラリを提供する際に気をつけたいことiOSでライブラリを提供する際に気をつけたいこと
iOSでライブラリを提供する際に気をつけたいこと
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
 
スマホのパケットを節約したいけど音泉をもっと楽しみたい
スマホのパケットを節約したいけど音泉をもっと楽しみたいスマホのパケットを節約したいけど音泉をもっと楽しみたい
スマホのパケットを節約したいけど音泉をもっと楽しみたい
 
関ジャバ 20130731 invokedynamic
関ジャバ 20130731 invokedynamic関ジャバ 20130731 invokedynamic
関ジャバ 20130731 invokedynamic
 
SoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについてSoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについて
 
20170805-osckyoto-lt-hiroshima
20170805-osckyoto-lt-hiroshima20170805-osckyoto-lt-hiroshima
20170805-osckyoto-lt-hiroshima
 
初めてのPower apps with azure media services
初めてのPower apps with azure media services初めてのPower apps with azure media services
初めてのPower apps with azure media services
 
java-java-bpstudy-connpass
java-java-bpstudy-connpassjava-java-bpstudy-connpass
java-java-bpstudy-connpass
 
業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日
 
早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング早稲田大学授業 - モバイルプログラミング
早稲田大学授業 - モバイルプログラミング
 

Recently uploaded

Recently uploaded (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Flask入門