Flask勉強会その1
Upcoming SlideShare
Loading in...5
×
 

Flask勉強会その1

on

  • 1,073 views

Python FlaskでWEBアプリの作り方を学ぶ。

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

Statistics

Views

Total Views
1,073
Views on SlideShare
1,073
Embed Views
0

Actions

Likes
1
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Flask勉強会その1 Flask勉強会その1 Presentation Transcript

    • 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年10月14日月曜日
    • 環境を作ろう! Windows でPythonを使うための環境 を作成します。(別紙資料) 13年10月14日月曜日
    • 最初のWEBアプリケーション アクセスすると画面を表示するだけ のWEBアプリケーションを作ります 13年10月14日月曜日
    • 最初のサンプル 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日月曜日
    • 実行 appフォルダに入り以下のコマンドを 実行ブラウザでhttp:/ /loclahost:5000 にアクセスしよう >python hello.py 13年10月14日月曜日
    • 解説 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日月曜日
    • 練習問題 「http:/ /localhost:5000/sample」にア クセスしたときに”ROBOT”と赤字で 表示される処理を書きましょう。 @app.route("/sample")でルーティングできます。 13年10月14日月曜日
    • テンプレート 複雑な画面や、デザインに凝った画面を 作るときにHTMLをプログラム中に書く のは大変。WEB アプリではプログラム 実行時にHTMLで書かれたテンプレート ファイルをを読み出し、必要な部分を書 き換えてクライアントに返す機能が一般 的(テンプレートエンジン) 13年10月14日月曜日
    • テンプレートエンジン 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  %}
    • 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, 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日月曜日
    • 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日月曜日
    • 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  %}
    • 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>
    • 今日やったこと WEBアプリケーション Flaskフレームワーク テンプレート GETとPOST 13年10月14日月曜日
    • 次回予告 ファイルを送るには? クラスとメソッド DBアクセス 13年10月14日月曜日