Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Eikichi Yamaguchi
1,448 views
Teclab3
tech lab3
Read more
3
Save
Share
Embed
Embed presentation
Download
Downloaded 13 times
1
/ 41
2
/ 41
3
/ 41
4
/ 41
5
/ 41
6
/ 41
7
/ 41
8
/ 41
9
/ 41
10
/ 41
11
/ 41
12
/ 41
13
/ 41
14
/ 41
15
/ 41
16
/ 41
17
/ 41
18
/ 41
19
/ 41
20
/ 41
21
/ 41
22
/ 41
23
/ 41
24
/ 41
25
/ 41
26
/ 41
27
/ 41
28
/ 41
29
/ 41
30
/ 41
31
/ 41
32
/ 41
33
/ 41
34
/ 41
35
/ 41
36
/ 41
37
/ 41
38
/ 41
39
/ 41
40
/ 41
41
/ 41
More Related Content
PPTX
CakePHP+Smartyハイブリッドによるラクラク開発
by
Shinzo SAITO
PPTX
BPStudy32 CouchDB 再入門
by
Yohei Sasaki
KEY
はじめてのCouch db
by
Eiji Kuroda
PDF
traitを使って楽したい話
by
infinite_loop
PDF
[東京] JapanSharePointGroup 勉強会 #2
by
Atsuo Yamasaki
KEY
Ll xcode
by
Net Kanayan
PDF
Rakuten tech conf
by
Koichi Fujikawa
PDF
Cloud computing competition by Hapyrus
by
Koichi Fujikawa
CakePHP+Smartyハイブリッドによるラクラク開発
by
Shinzo SAITO
BPStudy32 CouchDB 再入門
by
Yohei Sasaki
はじめてのCouch db
by
Eiji Kuroda
traitを使って楽したい話
by
infinite_loop
[東京] JapanSharePointGroup 勉強会 #2
by
Atsuo Yamasaki
Ll xcode
by
Net Kanayan
Rakuten tech conf
by
Koichi Fujikawa
Cloud computing competition by Hapyrus
by
Koichi Fujikawa
What's hot
PDF
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
by
Akabane Hiroyuki
PDF
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
by
Takashi J OZAKI
PDF
FxUG in Toyama - ASphalt2 container -
by
Akio Katayama
PDF
mishimasyk#4
by
Takayuki Serizawa
PDF
WordPressで投稿記事情報の取得方法
by
regret raym
PDF
月間10億pvを支えるmongo db
by
Yuji Isobe
KEY
Perlで伝統芸能
by
hitode909
PDF
Django boodoo
by
泰 増田
PDF
jQuery超入門編
by
Yasuhito Yabe
PPTX
J qmobiはjqueryから軽量化しているか
by
Hisashi Aruji
PDF
速くなければスマフォじゃない - インターンバージョン-
by
Kazunari Hara
PDF
XOOPS Cube Conference 2012 Developer Workshop 3
by
Hikawa Kilica
PDF
知って得する標準関数の使い方
by
Soudai Sone
PDF
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
PDF
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
by
Tsuyoshi Yamamoto
PDF
20091030cakephphandson 02
by
Yusuke Ando
KEY
カジュアルにソースコードリーディング
by
Akihiro Okuno
PPTX
MongoDB: システム可用性を拡張するインデクス戦略
by
ippei_suzuki
PDF
Yapc -asia 2012 lt @studio3104
by
Satoshi Suzuki
PPTX
Python/Bottle for Kubo Semi 2014
by
Toshiki NOGUCHI
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
by
Akabane Hiroyuki
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
by
Takashi J OZAKI
FxUG in Toyama - ASphalt2 container -
by
Akio Katayama
mishimasyk#4
by
Takayuki Serizawa
WordPressで投稿記事情報の取得方法
by
regret raym
月間10億pvを支えるmongo db
by
Yuji Isobe
Perlで伝統芸能
by
hitode909
Django boodoo
by
泰 増田
jQuery超入門編
by
Yasuhito Yabe
J qmobiはjqueryから軽量化しているか
by
Hisashi Aruji
速くなければスマフォじゃない - インターンバージョン-
by
Kazunari Hara
XOOPS Cube Conference 2012 Developer Workshop 3
by
Hikawa Kilica
知って得する標準関数の使い方
by
Soudai Sone
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
by
Tsuyoshi Yamamoto
20091030cakephphandson 02
by
Yusuke Ando
カジュアルにソースコードリーディング
by
Akihiro Okuno
MongoDB: システム可用性を拡張するインデクス戦略
by
ippei_suzuki
Yapc -asia 2012 lt @studio3104
by
Satoshi Suzuki
Python/Bottle for Kubo Semi 2014
by
Toshiki NOGUCHI
Viewers also liked
PPTX
Adana slide
by
Mehmet BOLAT
PPTX
Dishes typical of Bulgarian national cooking
by
Mehmet BOLAT
PPTX
Social media and speech pathology
by
Summer Tassin
PPT
Essential Selling Skills Part Ii
by
Mohammad Khaleque (Mak)
KEY
てらこ201104
by
Eikichi Yamaguchi
PPTX
Ispanya presentations
by
Mehmet BOLAT
PPTX
Presentación1
by
Ysaac Caceres Lozano
PPTX
Erdoğan şahinoğlu secondary school
by
Mehmet BOLAT
PPTX
Balkan boşnak recipes
by
Mehmet BOLAT
PPT
Essential Selling Skills Part Iii
by
Mohammad Khaleque (Mak)
PPT
Essential Selling Skills Part Iv
by
Mohammad Khaleque (Mak)
PPT
Potato salad
by
Mehmet BOLAT
PPT
1. Essential Selling Skills For Slide Share Part 1
by
Mohammad Khaleque (Mak)
PPTX
Geleceğimiz için güvenli internet!
by
Mehmet BOLAT
PPTX
Social media and speech pathology
by
Summer Tassin
PPTX
Social media and speech pathology
by
Summer Tassin
PPTX
Recipes by bulgarian team
by
Mehmet BOLAT
Adana slide
by
Mehmet BOLAT
Dishes typical of Bulgarian national cooking
by
Mehmet BOLAT
Social media and speech pathology
by
Summer Tassin
Essential Selling Skills Part Ii
by
Mohammad Khaleque (Mak)
てらこ201104
by
Eikichi Yamaguchi
Ispanya presentations
by
Mehmet BOLAT
Presentación1
by
Ysaac Caceres Lozano
Erdoğan şahinoğlu secondary school
by
Mehmet BOLAT
Balkan boşnak recipes
by
Mehmet BOLAT
Essential Selling Skills Part Iii
by
Mohammad Khaleque (Mak)
Essential Selling Skills Part Iv
by
Mohammad Khaleque (Mak)
Potato salad
by
Mehmet BOLAT
1. Essential Selling Skills For Slide Share Part 1
by
Mohammad Khaleque (Mak)
Geleceğimiz için güvenli internet!
by
Mehmet BOLAT
Social media and speech pathology
by
Summer Tassin
Social media and speech pathology
by
Summer Tassin
Recipes by bulgarian team
by
Mehmet BOLAT
Similar to Teclab3
PDF
スマートフォン向けサービスにおけるサーバサイド設計入門
by
Hisashi HATAKEYAMA
PDF
Djangoフレームワークの紹介
by
Shinya Okano
PDF
Djangoフレームワークの紹介
by
Shinya Okano
PPTX
Django Rest Frameworkでお手軽にREST APIを作る
by
Matsuo Keita
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
by
kenjis
PDF
Pyramid入門
by
Atsushi Odagiri
PDF
Djangoによるスマホアプリバックエンドの実装
by
Nakazawa Yuichi
PDF
10分でわかるFuelPHP @ 2011/12
by
kenjis
PDF
Pythonで始めるtoC向けWebサービス入門
by
創史 花村
PDF
Djangoのエントリポイントとアプリケーションの仕組み
by
Shinya Okano
PPTX
実践!Django + GraphQL 実装
by
ssuseraf19bf
ODP
Introduction of Python
by
Tomoya Nakayama
PDF
ScaLa+Liftとか
by
youku
KEY
How to django at first
by
Maito Kuwahara
PDF
Python東海GAEやってみた
by
Mori Shingo
PDF
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
by
fukuoka.ex
PDF
Djangoのススメ
by
Alisue Lambda
PPT
Google App EngineでTwitterアプリを作ろう
by
kenji4569
KEY
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
by
Yukinori KITADAI
PDF
使えるDjango1.4
by
hirokiky
スマートフォン向けサービスにおけるサーバサイド設計入門
by
Hisashi HATAKEYAMA
Djangoフレームワークの紹介
by
Shinya Okano
Djangoフレームワークの紹介
by
Shinya Okano
Django Rest Frameworkでお手軽にREST APIを作る
by
Matsuo Keita
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
by
kenjis
Pyramid入門
by
Atsushi Odagiri
Djangoによるスマホアプリバックエンドの実装
by
Nakazawa Yuichi
10分でわかるFuelPHP @ 2011/12
by
kenjis
Pythonで始めるtoC向けWebサービス入門
by
創史 花村
Djangoのエントリポイントとアプリケーションの仕組み
by
Shinya Okano
実践!Django + GraphQL 実装
by
ssuseraf19bf
Introduction of Python
by
Tomoya Nakayama
ScaLa+Liftとか
by
youku
How to django at first
by
Maito Kuwahara
Python東海GAEやってみた
by
Mori Shingo
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
by
fukuoka.ex
Djangoのススメ
by
Alisue Lambda
Google App EngineでTwitterアプリを作ろう
by
kenji4569
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
by
Yukinori KITADAI
使えるDjango1.4
by
hirokiky
Teclab3
1.
フロントエンジニアでも py がしたい 2013/03/22 Tech
Lab 3
2.
Agenda •お前だれよ •python
って何よ •python の開発環境 •作ってみる
3.
お前だれよ •Yamaguchi Eikichi
•@__hage__ •何でも屋 → 4月からフリーランス •http://dev.hageee.net •python は 2年ちょっと
5.
https://twitter.com/yuchimiri/status/312351688382111745/photo/1
6.
python の特長
•シンプルな文法 •最初からオブジェクト指向 •手続き型みたいな書き方もできる •拡張が C/C++ でもかける •適当に書いても速い •OS の深いところまで触れる •最新は 3.3.x 系 •仕事で使う & 最初の一歩は 2.7.x 系
7.
活躍の場に見境がない python さん
8.
python の文法
9.
python の開発環境
10.
python の開発環境
•pythonbrew •virtualenv, virtualenvwrapper •easy_install, pip •SublimeText2 ※インストール方法は事前資料を参考。 https://gist.github.com/glassesfactory/5192223
11.
pythonbrew •システムとは別の
python •バージョンの切り替え •色々入れてくれる
12.
virtualenv, virtualenvwrapper
•システムとは別のライブラリ環境 •プロジェクトごとに必要なモジュール •virtualenvwrapper でもう少し使いやすく
13.
easy_install, pip
•ライブラリの管理 •入れたり消したり、リストをだしたり •virtualenv と組み合わせることでプロジェクト環境を作る
14.
モジュールの管理 インストール $(techlab3) pip install
flask アンインストール $(techlab3) pip uninstall flask 一覧 $(techlab3) pip freeze
15.
Flask
MVC のうち、Cに関わる部分をやってくれる。 非常にシンプルにかけるため、ちょっとした API を構築する時便利。
16.
これぐらい簡単 ルーティングとコントローラーが同時に出来る! $ (project_name) python
main.py で、実行してみる
17.
作ってみる
18.
Hello World!
#!/usr/bin/env python # -*- coding: utf-8 -*- from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "hell world" if __name__ == '__main__': app.run()
19.
テンプレート周り •jinja2 +
pyjade jinja2 を jade 形式で記述 •install $(techlab3) pip install pyjade •使えるようにする app = Flask(__name__) app.jinja_env.add_extension('pyjade.ext.jinja.PyJadeExtension') @app.route('/'): return render_template('index.jade')
20.
書き方
jade の基本構文 変数とメソッド
21.
書き方 ステートメント
22.
テンプレートの継承 継承元
拡張
23.
mongodb
ドキュメント指向データベース。 RDBMS ではなく NoSQL に分類。 レコードをテーブルに格納するのではなく 構造データをJSON形式で表現する。 構造データの集合体をコレクションと呼ぶ。
24.
mongodb のメリットデメリット メリット
•とても気軽に使える。モックレベルならさくさく。 •単純なデータの I/O が速い •動的にフィールドを追加できる デメリット •MySQL などと違いデータの型指定が厳密でない •柔軟すぎるがゆえに事故が起こる
25.
mongoengine 使おう インストール $(techlab3) pip
install mongoengine •フィールドの型指定 •mongodb をちょっと RDBMS の ORM っぽく扱える用になる。
26.
つかってみる 接続/切断
from mongoengine import * con = connect('db_name') con.disconnect() モデル from datetime import datetime from mongoengine import * class Tweet(Document): sid = SequenceField(unique=True) text = StringField(required=True) created_at = DateTimeField(default=datetime.now) updated_at = DateTimeField(default=datetime.now)
27.
つかってみる 新規作成
取得 #保存 #コレクション取得 tweet = Tweet(text='hage') for tweet in Tweet.objects(): tweet.save() logging.info(tweet.text) 更新 削除 hironori.text = 'boorin' hironori.delete() hironori.save()
28.
ちょっとチュートリアルっぽく
29.
モデル定義 from datetime
import datetime from mongoengine import * class Tweet(Document): sid = SequenceField(unique=True) text = StringField(required=True) created_at = DateTimeField(default=datetime.now) updated_at = DateTimeField(default=datetime.now)
30.
model.py
•Tweet モデルを書く •db とのコネクションを管理する DBI を書く
31.
ルーティング 単純な
CRUD を実装する上で 以下のようなルーティングを定義する。 •一覧 => / [GET] •詳細 => /1, /2, /3... [GET] •新規 => /new [GET] •保存 => / [POST] •更新 => / [PUT] •削除 => / [DELETE]
32.
リクエストタイプに応じたレスポンス
json を要求されたら json を返す。 そうでなければ HTML を返す →レスポンスのファイルタイプが異なるだけで ほとんどの処理が同じになる場合が多いため。 @app.route('/index.json', method=["GET"]) @app.route('/', method=["GET"]) def index(): #リクエストが json だったら if request.headers['Content-Type'] == 'application/json': return #json 返す else: #そうでなければ html を返す。 return render_template('index.jade')
33.
db から引っ張り上げる
事前に定義した DBI を使って mongodb との接続を確立しつつ、データをひっぱる。 from model import db, Tweet with db: collection = Tweet.objects.all()
34.
データの整形 mongodb
からのデータを そのまま json にしようとするといくつかのデータは型が 存在しないと怒られるので整形する。 def model_serializer(model): result = {} for k in model: val = model[k] if isinstance(val, (str, basestring, int, float)): result.setdefault(k, val) elif isinstance(val, list): l = [model_serializer(v) for v in val] result.setdefault(k, l) elif isinstance(val, dict): result.setdefault(k, model_serializer(val)) elif isinstance(val, datetime): result.setdefault(k, val.strftime('%Y/%m/%d %H:%M:%S')) elif isinstance(val, Document): result.setdefault(k, model_serializer(val)) elif isinstance(val, ObjectId): result.setdefault(k, str(val)) return result
35.
json にして返す
python には 2.6 からデフォルトで json のパーサーが備わっているため 特に細かいことを気にする必要はない。 import json json.dumps({'hoge':'huga'})
36.
データの保存 フォームからのデータを引っ張ってきて モデルへ突っ込んで保存する。
@app.route('/create', methods=["POST"]) def create(): data = request.form tweet = Tweet(text=data["text"]) try: tweet.save() except Exception: print e serialized = modelSerializer(tweet) resData = json.dumps(serialized) return Response(resData, content_type="application/json", status=200)
37.
データの削除 @app.route('/<int:id>', methods=["DELETE"])
def destroy(id): with db: try: tweet = Tweet.objects(sid=id).first().delete() datas = json.dumps({'id': tweet.sid}) except: # raise return Response(datas, mimetype="application/json", status=200)
38.
データの更新 @app.route('/<int:id>',
methods=["PUT"]) def update(id): data = request.form with db: tweet = Tweet.objects(sid=id).first() tweet.text = data['text'] tweet.updated_at = datetime.now() try: tweet.save() except Exception, e: print e serialized = model_serializer(tweet) resData = json.dumps(serialized) return Response(resData, mimetype="application/json", status=200)
40.
オススメの本
41.
オススメの本
Download