Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PyhonとFlaskで学ぶ
WEBプログラミング その1
2013/10/09
masato-ka

13年10月14日月曜日
この資料の目的
この資料の目的はWEBアプリケー
ションの初心者に向けて、WEBアプ
リケーションを実際に作りながら学
んでもらうことです。
目標:WEB画面を表示させるPOSTと
GETが扱えるようになる。
13年10月14日月曜日
目次
1. WEBアプリケーションてなんぞ?
2. 環境を作ろう
3. 最初のWEBアプリケーション
4. POSTとGET

13年10月14日月曜日
WEBアプリケーション概要

13年10月14日月曜日
今回の構成
Flaskと呼ばれるフレー
ムワークでWEBアプリケーション
を作り、簡易なWEBサーバでサービ
スを立ち上げる

今回作るプログラムを
ApacheとかPython のAPサーバで動
かすこともできるけど、まずは範囲
外

13年...
環境を作ろう!

Windows でPythonを使うための環境
を作成します。(別紙資料)

13年10月14日月曜日
最初のWEBアプリケーション

アクセスすると画面を表示するだけ
のWEBアプリケーションを作ります

13年10月14日月曜日
最初のサンプル
webアプリケーションの

app

プログラム本体

hello.py

from	
  flask	
  import	
  Flask
app	
  =	
  Flask(__name__)
@app.route("/")...
実行
appフォルダに入り以下のコマンドを
実行ブラウザでhttp:/
/loclahost:5000
にアクセスしよう
>python hello.py

13年10月14日月曜日
解説
flaskフレームワークを使う準備

from	
  flask	
  import	
  Flask
app	
  =	
  Flask(__name__)
@app.route("/")
def	
  hello():
	
  	
 ...
練習問題
「http:/
/localhost:5000/sample」にア
クセスしたときに”ROBOT”と赤字で
表示される処理を書きましょう。
@app.route("/sample")でルーティングできます。

13年10月14日月曜日
テンプレート
複雑な画面や、デザインに凝った画面を
作るときにHTMLをプログラム中に書く
のは大変。WEB アプリではプログラム
実行時にHTMLで書かれたテンプレート
ファイルをを読み出し、必要な部分を書
き換えてクライアントに返す機能が一...
テンプレートエンジン
from	
  flask	
  import	
  Flask
from	
  flask	
  import	
  render_template

app

app	
  =	
  Flask(__name__)

...
GET と POST
クライアントからの情報を送る方法
GET メソッド 簡単にデータを送れる
POSTメソッド 大量にデータを送れ
る

13年10月14日月曜日
GET メソッド
http:/
/hogehoge/test.cgi?a=alpha&b=beta
GET /cgi-bin/dk2/test.cgi?a=alpha&b=beta HTTP/
1.1
Accept: image/gif, im...
POSTメソッド
http:/
/hogehoge/
POST /cgi-bin/test.cgi HTTP/1.1
Accept: */*
Referer: http://127.0.0.1/cgi-bin/test.cgi
Accept-L...
GETメソッド演習
from	
  flask	
  import	
  Flask

app

from	
  flask	
  import	
  render_template,request

app	
  =	
  Flask(__n...
POSTメソッド演習
from	
  flask	
  import	
  Flask
from	
  flask	
  import	
  render_template,request

app

app	
  =	
  Flask(__n...
今日やったこと
WEBアプリケーション
Flaskフレームワーク
テンプレート
GETとPOST

13年10月14日月曜日
次回予告
ファイルを送るには?
クラスとメソッド
DBアクセス

13年10月14日月曜日
Upcoming SlideShare
Loading in …5
×

Flask勉強会その1

3,818 views

Published on

Python FlaskでWEBアプリの作り方を学ぶ。
まずは基礎の基礎編から。

Published in: Technology
  • Dating for everyone is here: ❶❶❶ http://bit.ly/2ZDZFYj ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❤❤❤ http://bit.ly/2ZDZFYj ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Flask勉強会その1

  1. 1. PyhonとFlaskで学ぶ WEBプログラミング その1 2013/10/09 masato-ka 13年10月14日月曜日
  2. 2. この資料の目的 この資料の目的はWEBアプリケー ションの初心者に向けて、WEBアプ リケーションを実際に作りながら学 んでもらうことです。 目標:WEB画面を表示させるPOSTと GETが扱えるようになる。 13年10月14日月曜日
  3. 3. 目次 1. WEBアプリケーションてなんぞ? 2. 環境を作ろう 3. 最初のWEBアプリケーション 4. POSTとGET 13年10月14日月曜日
  4. 4. WEBアプリケーション概要 13年10月14日月曜日
  5. 5. 今回の構成 Flaskと呼ばれるフレー ムワークでWEBアプリケーション を作り、簡易なWEBサーバでサービ スを立ち上げる 今回作るプログラムを ApacheとかPython のAPサーバで動 かすこともできるけど、まずは範囲 外 13年10月14日月曜日
  6. 6. 環境を作ろう! Windows でPythonを使うための環境 を作成します。(別紙資料) 13年10月14日月曜日
  7. 7. 最初のWEBアプリケーション アクセスすると画面を表示するだけ のWEBアプリケーションを作ります 13年10月14日月曜日
  8. 8. 最初のサンプル webアプリケーションの app プログラム本体 hello.py from  flask  import  Flask app  =  Flask(__name__) @app.route("/") def  hello():        return  "Hello  World!" if  __name__  ==  "__main__":        app.run() templates テンプレートを入れる (後述) static 静的ファイル(JS,CSS) などを入れる 13年10月14日月曜日
  9. 9. 実行 appフォルダに入り以下のコマンドを 実行ブラウザでhttp:/ /loclahost:5000 にアクセスしよう >python hello.py 13年10月14日月曜日
  10. 10. 解説 flaskフレームワークを使う準備 from  flask  import  Flask app  =  Flask(__name__) @app.route("/") def  hello():        return  "Hello  World!" ルートにアクセスする時に実行 される処理、ここではクライア if  __name__  ==  "__main__":        app.run() ントに”Hello World!”を返すだけ もっと複雑なHTMLを返すにはどうすればいいか? 次章で! 13年10月14日月曜日
  11. 11. 練習問題 「http:/ /localhost:5000/sample」にア クセスしたときに”ROBOT”と赤字で 表示される処理を書きましょう。 @app.route("/sample")でルーティングできます。 13年10月14日月曜日
  12. 12. テンプレート 複雑な画面や、デザインに凝った画面を 作るときにHTMLをプログラム中に書く のは大変。WEB アプリではプログラム 実行時にHTMLで書かれたテンプレート ファイルをを読み出し、必要な部分を書 き換えてクライアントに返す機能が一般 的(テンプレートエンジン) 13年10月14日月曜日
  13. 13. テンプレートエンジン from  flask  import  Flask from  flask  import  render_template app app  =  Flask(__name__) hello.py @app.route('/hello) @app.route('/hello/<name>') def  hello_name(name=None):        return  render_template('hello.html',  name=name) @app.route("/") def  hello():        return  "Hello  World!" if  __name__  ==  "__main__":        app.run() templates hello.html static 13年10月14日月曜日 <!doctype  html> <title>Hello  from  Flask</title> {%  if  name  %}    <h1>Hello  {{  name  }}!</h1> {%  else  %}    <h1>Hello  World!</h1> {%  endif  %}
  14. 14. GET と POST クライアントからの情報を送る方法 GET メソッド 簡単にデータを送れる POSTメソッド 大量にデータを送れ る 13年10月14日月曜日
  15. 15. GET メソッド http:/ /hogehoge/test.cgi?a=alpha&b=beta GET /cgi-bin/dk2/test.cgi?a=alpha&b=beta HTTP/ 1.1 Accept: image/gif, image/x-xbitmap, image/ jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */* Referer: http://127.0.0.1/cgi-bin/test.cgi Accept-Language: ja,en;q=0.5 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Host: 127.0.0.1 Connection: Keep-Alive 13年10月14日月曜日
  16. 16. POSTメソッド http:/ /hogehoge/ POST /cgi-bin/test.cgi HTTP/1.1 Accept: */* Referer: http://127.0.0.1/cgi-bin/test.cgi Accept-Language: ja,en;q=0.5 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Host: 127.0.0.1 Content-Length: 14 Connection: Keep-Alive a=alpha&b=beta 13年10月14日月曜日
  17. 17. GETメソッド演習 from  flask  import  Flask app from  flask  import  render_template,request app  =  Flask(__name__) get.py @app.route('/test_get',methods=['GET']) def  hello_request():        if  request.method  ==  'GET':                name  =  request.args.get('name')                return  render_template('hello.html',  name=name) if  __name__  ==  "__main__":        app.run() templates hello.html static 13年10月14日月曜日 <!doctype  html> <title>Hello  from  Flask</title> {%  if  name  %}    <h1>Hello  {{  name  }}!</h1> {%  else  %}    <h1>Hello  World!</h1> {%  endif  %}
  18. 18. POSTメソッド演習 from  flask  import  Flask from  flask  import  render_template,request app app  =  Flask(__name__) get.py @app.route('/test_get,['PSOT',  'GET']) def  hello_request():        if  request.method  ==  'GET':                name  =  request.args.get('name',  '')                return  render_template('hello.html',  name=name)        if  request.method  ==  'POST':                name  =  request.form['name']                return  render_template('hello.html',  name=name) if  __name__  ==  "__main__":        app.run() templates hello.html static 13年10月14日月曜日 <!doctype  html> <title>Hello  from  Flask</title> {%  if  name  %}    <h1>Hello  {{  name  }}!</h1> {%  else  %}    <h1>Hello  World!</h1> {%  endif  %} <form  method="POST" > <p><input type="text" name="name"></p> <p><input type="submit" value="送信する"></p> </form>
  19. 19. 今日やったこと WEBアプリケーション Flaskフレームワーク テンプレート GETとPOST 13年10月14日月曜日
  20. 20. 次回予告 ファイルを送るには? クラスとメソッド DBアクセス 13年10月14日月曜日

×