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.
Sinatra風マイクロフレー
ムワークで始める
python
言い訳
言い訳
_人人人人人人人人人人人人人人人人人人人人人_
> なんでも構わないですので、お願いします <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
はじめに-なぜPython?-
• Rubyとの相似性
• LL系,フレームワーク,テスト環境,サーバ
• 科学技術系に強い
• データサイなんとかの知識も吸収しやすい
Python(特徴)とは
• インデント重視言語
• オブジェクト指向
• 書き方は限定されている
• 綺麗にかける
• 書き方で悩まなくても良い(気楽)
Pythonの導入
- 2系と3系で分かれている
- 3系を使いましょう
- rbenvの代りにpyenvがおすすめ
- rbenvとコマンドが一緒
- bundleの代りにvirtualenvがおすすめ
- 開発環境
- Vim好きな人・・・...
FizzBuzz
for i in range(1,101):
if i % 15 == 0:
print("FizzBuzz")
elif i %3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Bu...
リスト・タプル・辞書
ham = [1,2,3,4,5]
print(ham[0:3]) # 1,2,3
hoge = (1,2,3,4,'foo')
print(hoge[4])# 'foo'
buzz = {'a': 1, 'b': 2}
...
オブジェクト指向
class Foo(object):
def __init__(self):
print('Foo')
def hoge(self, a):
print(a)
foo = Foo() #'Foo'
foo.hoge('hell...
Flask
• マイクロフレームワーク
• Sinatraと考え方は似ている
• Rubyを使ったきっかけがSinatra
• 今回は逆パターンの内容でLT(ごめんなさいごめんさない)
Flask
• エイプリルフールネタで作られたフレームワーク
• Python版Sinatraといったところ
• なのでSinatra使えるイコールFlask使える(超理論!!)
• ただし,MVCではなくてMVT
• Model(M) == ...
Helloworld(Sinatra)
require 'sinatra'
get '/' do
"Hello World"
end
Helloworld(Flask)
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World'
if __nam...
htmlを置いて表示(Sinatra)
.
├── app.rb
└── views
├── index.erb
└── layout.erb
htmlを置いて表示(Sinatra)
require 'sinatra'
get '/' do
@title = "HelloSinatra!"
erb :index
end
<!DOCTYPE html>
<html lang="ja">
...
htmlを置いて表示(Flask)
.
├── app.py
└── templates
├── index.html
└── layout.html
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index....
まとめ
• Rubyもいいけど
• これを機会にPythonも始めてみませんか
Upcoming SlideShare
Loading in …5
×

Sinatra風マイクロフレームワークで始めるPython

3,890 views

Published on

sinatrasapporoのLTで発表した資料です.

Published in: Engineering
  • Be the first to comment

Sinatra風マイクロフレームワークで始めるPython

  1. 1. Sinatra風マイクロフレー ムワークで始める python
  2. 2. 言い訳
  3. 3. 言い訳 _人人人人人人人人人人人人人人人人人人人人人_ > なんでも構わないですので、お願いします <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
  4. 4. はじめに-なぜPython?- • Rubyとの相似性 • LL系,フレームワーク,テスト環境,サーバ • 科学技術系に強い • データサイなんとかの知識も吸収しやすい
  5. 5. Python(特徴)とは • インデント重視言語 • オブジェクト指向 • 書き方は限定されている • 綺麗にかける • 書き方で悩まなくても良い(気楽)
  6. 6. Pythonの導入 - 2系と3系で分かれている - 3系を使いましょう - rbenvの代りにpyenvがおすすめ - rbenvとコマンドが一緒 - bundleの代りにvirtualenvがおすすめ - 開発環境 - Vim好きな人・・・jedi-vim - Emacs好きな人・・・jedi - IDE好きな人・・・pycharm
  7. 7. FizzBuzz for i in range(1,101): if i % 15 == 0: print("FizzBuzz") elif i %3 == 0: print("Fizz") elif i % 5 == 0: print("Buzz") else: print(i)
  8. 8. リスト・タプル・辞書 ham = [1,2,3,4,5] print(ham[0:3]) # 1,2,3 hoge = (1,2,3,4,'foo') print(hoge[4])# 'foo' buzz = {'a': 1, 'b': 2} print(buzz['b'])# 2
  9. 9. オブジェクト指向 class Foo(object): def __init__(self): print('Foo') def hoge(self, a): print(a) foo = Foo() #'Foo' foo.hoge('hello') #'hello'
  10. 10. Flask • マイクロフレームワーク • Sinatraと考え方は似ている • Rubyを使ったきっかけがSinatra • 今回は逆パターンの内容でLT(ごめんなさいごめんさない)
  11. 11. Flask • エイプリルフールネタで作られたフレームワーク • Python版Sinatraといったところ • なのでSinatra使えるイコールFlask使える(超理論!!) • ただし,MVCではなくてMVT • Model(M) == Model(M) • View(V) == Template(T) • Controller(C) == View(V)
  12. 12. Helloworld(Sinatra) require 'sinatra' get '/' do "Hello World" end
  13. 13. Helloworld(Flask) from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello World' if __name__ == '__main__': app.run()
  14. 14. htmlを置いて表示(Sinatra) . ├── app.rb └── views ├── index.erb └── layout.erb
  15. 15. htmlを置いて表示(Sinatra) require 'sinatra' get '/' do @title = "HelloSinatra!" erb :index end <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title><%= @title %></title> </head> <body> <%= yield %> </body> </html> <h2>てすと</h2>
  16. 16. htmlを置いて表示(Flask) . ├── app.py └── templates ├── index.html └── layout.html
  17. 17. from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html',titlename="helloworld") app.run() <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>{{ title }}</title> </head> {% block body %} {% endblock %} </html> {% extends "layout.html" %} {% block body %} <h2> テスト </h2> {% endblock %}
  18. 18. まとめ • Rubyもいいけど • これを機会にPythonも始めてみませんか

×