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
Yoshiyuki Nakamura
5,634 views
Pythonおじさんのweb2py挑戦記
2012-09-16 Python Conference Japan 2012 中村 良幸 @nakayoshix Python札幌 / 数学勉強会@札幌 / クラウド研究会@札幌
Software
◦
Related topics:
Web Application
•
Read more
8
Save
Share
Embed
Embed presentation
1
/ 29
2
/ 29
3
/ 29
Most read
4
/ 29
Most read
5
/ 29
Most read
6
/ 29
7
/ 29
8
/ 29
9
/ 29
10
/ 29
11
/ 29
12
/ 29
13
/ 29
14
/ 29
15
/ 29
16
/ 29
17
/ 29
18
/ 29
19
/ 29
20
/ 29
21
/ 29
22
/ 29
23
/ 29
24
/ 29
25
/ 29
26
/ 29
27
/ 29
28
/ 29
29
/ 29
More Related Content
PDF
Gitの便利ワザ
by
ktateish
PDF
F#入門 ~関数プログラミングとは何か~
by
Nobuhisa Koizumi
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
pg_bigmと類似度検索
by
Masahiko Sawada
PDF
モジュールの凝集度・結合度・インタフェース
by
Hajime Yanagawa
PDF
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
by
aha_oretama
PDF
ブラック企業から学ぶMVCモデル
by
Yuta Hiroto
PDF
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
by
Masahiko Sawada
Gitの便利ワザ
by
ktateish
F#入門 ~関数プログラミングとは何か~
by
Nobuhisa Koizumi
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
pg_bigmと類似度検索
by
Masahiko Sawada
モジュールの凝集度・結合度・インタフェース
by
Hajime Yanagawa
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
by
aha_oretama
ブラック企業から学ぶMVCモデル
by
Yuta Hiroto
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
by
Masahiko Sawada
What's hot
KEY
やはりお前らのMVCは間違っている
by
Koichi Tanaka
PDF
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
What's new in Spring Boot 2.6 ?
by
土岐 孝平
PDF
Nginx lua
by
Moriyoshi Koizumi
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
PDF
中3女子が狂える本当に気持ちのいい constexpr
by
Genya Murakami
PDF
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
by
kwatch
PDF
pg_trgmと全文検索
by
NTT DATA OSS Professional Services
PDF
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
by
Shohei Okada
PDF
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
by
Google Cloud Platform - Japan
PDF
すごい constexpr たのしくレイトレ!
by
Genya Murakami
PDF
Windowsフォームで大丈夫か?一番良いのを頼む。
by
Yuya Yamaki
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PDF
図解gitworkflows(7)
by
ktateish
PDF
Tackling Complexity
by
Yoshitaka Kawashima
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PDF
こわくない Git
by
Kota Saito
PDF
Javaトラブルに備えよう #jjug_ccc #ccc_h2
by
Norito Agetsuma
PDF
PostgreSQL のイケてるテクニック7選
by
Tomoya Kawanishi
やはりお前らのMVCは間違っている
by
Koichi Tanaka
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
What's new in Spring Boot 2.6 ?
by
土岐 孝平
Nginx lua
by
Moriyoshi Koizumi
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
中3女子が狂える本当に気持ちのいい constexpr
by
Genya Murakami
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
by
kwatch
pg_trgmと全文検索
by
NTT DATA OSS Professional Services
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
by
Shohei Okada
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
by
Google Cloud Platform - Japan
すごい constexpr たのしくレイトレ!
by
Genya Murakami
Windowsフォームで大丈夫か?一番良いのを頼む。
by
Yuya Yamaki
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
図解gitworkflows(7)
by
ktateish
Tackling Complexity
by
Yoshitaka Kawashima
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PostgreSQLアンチパターン
by
Soudai Sone
こわくない Git
by
Kota Saito
Javaトラブルに備えよう #jjug_ccc #ccc_h2
by
Norito Agetsuma
PostgreSQL のイケてるテクニック7選
by
Tomoya Kawanishi
Viewers also liked
PDF
Rubyとプログラミング言語の潮流
by
Kazuhiko Kato
PDF
Djangoとweb2pyをapacheに組込む
by
2bo 2bo
KEY
自社開発をしていなかった会社が Python を選んだ理由
by
Daisuke Komatsu
PPTX
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
by
Yoshiyuki Nakamura
PPTX
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
by
Yoshiyuki Nakamura
PPTX
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
by
Yoshiyuki Nakamura
PDF
Wrapping a C++ library with Cython
by
fuzzysphere
PPT
No te comas la coma
by
Pablo Rico
PDF
Scalaと過ごした5ヶ月間
by
Haruki Okada
PDF
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
by
Kei Nakazawa
PPTX
Hpcビジネスコンテンスト発表資料
by
Hironori Nakajo
KEY
Pythonについて
by
Kenji NAKAGAKI
PDF
ScalaでAndroidアプリ開発
by
papamitra
PPTX
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
by
omi end
PDF
Scala 初めての人が Heroku で Web アプリを公開するまで
by
Hideaki Miyake
PDF
多分モダンなWebアプリ開発
by
tak-nakamura
PDF
Pythonの開発環境を調べてみた
by
Kenji NAKAGAKI
PPTX
数理最適化とPython
by
Yosuke Onoue
PPT
Google App EngineでTwitterアプリを作ろう
by
kenji4569
PDF
めんどくさくない Scala #kwkni_scala
by
Kazuhiro Sera
Rubyとプログラミング言語の潮流
by
Kazuhiko Kato
Djangoとweb2pyをapacheに組込む
by
2bo 2bo
自社開発をしていなかった会社が Python を選んだ理由
by
Daisuke Komatsu
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
by
Yoshiyuki Nakamura
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
by
Yoshiyuki Nakamura
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
by
Yoshiyuki Nakamura
Wrapping a C++ library with Cython
by
fuzzysphere
No te comas la coma
by
Pablo Rico
Scalaと過ごした5ヶ月間
by
Haruki Okada
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
by
Kei Nakazawa
Hpcビジネスコンテンスト発表資料
by
Hironori Nakajo
Pythonについて
by
Kenji NAKAGAKI
ScalaでAndroidアプリ開発
by
papamitra
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
by
omi end
Scala 初めての人が Heroku で Web アプリを公開するまで
by
Hideaki Miyake
多分モダンなWebアプリ開発
by
tak-nakamura
Pythonの開発環境を調べてみた
by
Kenji NAKAGAKI
数理最適化とPython
by
Yosuke Onoue
Google App EngineでTwitterアプリを作ろう
by
kenji4569
めんどくさくない Scala #kwkni_scala
by
Kazuhiro Sera
Similar to Pythonおじさんのweb2py挑戦記
PDF
Python札幌 2012/06/17
by
Shinya Okano
PDF
Yapc2012ltthon
by
Junya Murabe
PDF
Python東海GAEやってみた
by
Mori Shingo
PDF
PyCon APAC 2013 Web Secure Coding
by
Gouji Ochiai
PDF
次世代言語 Python による PyPy を使った次世代の処理系開発
by
shoma h
PDF
Introduction Pycon2010
by
(shibao)芝尾 (kouichiro)幸一郎
PDF
Webフレームワークパネル(Django) at PyConJP 2012
by
makoto tsuyuki
PDF
ScrapyとPhantomJSを用いたスクレイピングDSL
by
Masayuki Isobe
PPT
Python languageupdate (2004)
by
泰 増田
PDF
PythonによるWebスクレイピング入門
by
Hironori Sekine
PDF
Pythonによるwebアプリケーション入門 - Django編-
by
Hironori Sekine
PDF
Djangoフレームワークの紹介
by
Shinya Okano
PDF
"Continuous Publication" with Python: Another Approach
by
Daisuke Miyakawa
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
by
Katsuhiro Morishita
PDF
PyPy 紹介
by
shoma h
PDF
RでつくるWebアプリ~rApache編~
by
Kazuya Wada
PDF
TreeFrog Frameworkの紹介
by
ao27
PDF
Teclab3
by
Eikichi Yamaguchi
PDF
Flask勉強会その1
by
Masato Kawamura
PDF
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
by
Kei IWASAKI
Python札幌 2012/06/17
by
Shinya Okano
Yapc2012ltthon
by
Junya Murabe
Python東海GAEやってみた
by
Mori Shingo
PyCon APAC 2013 Web Secure Coding
by
Gouji Ochiai
次世代言語 Python による PyPy を使った次世代の処理系開発
by
shoma h
Introduction Pycon2010
by
(shibao)芝尾 (kouichiro)幸一郎
Webフレームワークパネル(Django) at PyConJP 2012
by
makoto tsuyuki
ScrapyとPhantomJSを用いたスクレイピングDSL
by
Masayuki Isobe
Python languageupdate (2004)
by
泰 増田
PythonによるWebスクレイピング入門
by
Hironori Sekine
Pythonによるwebアプリケーション入門 - Django編-
by
Hironori Sekine
Djangoフレームワークの紹介
by
Shinya Okano
"Continuous Publication" with Python: Another Approach
by
Daisuke Miyakawa
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
by
Katsuhiro Morishita
PyPy 紹介
by
shoma h
RでつくるWebアプリ~rApache編~
by
Kazuya Wada
TreeFrog Frameworkの紹介
by
ao27
Teclab3
by
Eikichi Yamaguchi
Flask勉強会その1
by
Masato Kawamura
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
by
Kei IWASAKI
Pythonおじさんのweb2py挑戦記
1.
Pythonおじさんの web2py挑戦記 2012-09-16 Python Conference
Japan 2012 中村 良幸 @nakayoshix Python札幌 / 数学勉強会@札幌 / クラウド研究会@札幌
2.
今日のアジェンダ • 自己紹介と札幌の勉強会事情 • PythonのWeb
Application Framework • web2pyの特徴的な機能及び利点と欠点 • web2pyの事例紹介 • web2pyによるライブコーディング • まとめ
3.
自己紹介 • 中村 良幸 →
なかむら よしゆき → なかよし(ワタミメソッド) → nakayoshix(xを付けて) → 統合ID: nakayoshix です。(キリッ
4.
仕事でやってきたこと • HPC (Fortran)
1994∼2000 • 津波数値解析、港湾の水質汚染拡散計算、泊原発の大気汚染拡散計算 • 報告書作成と3Dアニメによる可視化 (C + PostScript & OpenGL) • CRM (Siebel) 2001∼2003 • 北海道ガス(北ガス)のお客様問い合わせ対応システム • Siebelのカスタマイズは、SiebelVBというMicrosoftVB互換言語 • MSテクノロジー (ASP.NET, C#がメイン) • 札幌市環境マネジメントシステム (ASP.NET, C#, VS2005時代) • 某組織向けグループウェア(XML Web Service & スマートクライアント) • 他にもJava, PHP, ExcelVBA, R, およびPythonによる業務用アプリ開発を色々と…
5.
Pythonによる受託アプリケーション開発歴 • 2006年 全国各地の大学向け施設管理システム(Webアプリケーション) •
帳票出力モジュールを、Linux上でPython + PyUNO + OpenOffice.orgで作成 • 2007年 北海道大学の大気環境汚染研究のためのサーバシステム • センサー付き端末から定期的に送られるメール(含データ)を受信してDB化 • Python SMTPモジュールを利用、O/R MapperとしてSQLAlchemyを利用 • 2009年 中古自動車売買Webサイトの構築 ( http://www.calwing.com/ ) • DjangoによるWebアプリケーション、DjangoAdminを大幅にカスタマイズ • 2010年 統計分析用パッケージの作成(納期二週間でSPSSと同じものを…) • 重回帰分析(AICによるモデル選択を含む)計算処理はRで、GUIはPythonで
6.
Pythonによる自社用アプリケーション開発歴 • 2010年∼2012年にかけて、SSLサーバ証明書の申請管理システムを開発 • 初めてのweb2pyによる業務用Webアプリケーションの開発 •
他システムとのAPI連携がたくさん • Google Apps, Zoho CRM, kintone, JIRAとの間のREST API連携 • Root CAとの間の証明書ベースによる暗号化されたSOAP API連携 • ぼっちdeveloperゆえ、基本的に全て独りで開発。最近ではサーバーへの デプロイ、サーバの保守管理、セキュリティ、ログ管理、社内PC管理 等々まで独りで… • 本当は、今日はその実際の事例を紹介しようと思っていましたが、諸般 の事情でそれが不可能になりました。
7.
というわけで… •Pythonおじさんです。(キリッ
8.
勉強会活動について • 札幌で色々と勉強会を主宰しています • Python札幌
/ from sapporo import *; with the Zen of Python • 現在、「Python初学者向け読書会@札幌」を隔週木曜で開催中 • 数学勉強会@札幌 / 大人のためのやり直しの数学勉強会 • 現在、「解析の基礎」を教科書に、毎週月曜に勉強会を開催中 • クラウド研究会@札幌 / 年に一度の「クラウド温泉@小 」 • 現在、「ぼちぼちHaskell勉強会@札幌」を隔週木曜で開催中 • 勉強会充です。(キリッ
9.
その他、趣味とか興味とか • オープンソース関連活動 • オープンソースのCRM,
openCRXの日本語化 • openCRXのベースとなるMDAフレームワーク、openMDX • 最近興味があるのは… • 関数型言語、特にHaskell (ついでにScala & F#) • Monadとその理論的背景である圏論、代数構造 • 好きなエディタはEmacs • Emacs歴24年になります。自称・Emacsおじさんです。(キリッ • 日常生活では • 1994年からヨーガを始めたので、ヨーガ歴24年です。
10.
前置きはここまで • ここからが本編です
11.
Pythonで作られた各種の Web Application Framework •
Django - 豊富な実績、多くのPaaSでも標準で使える いわゆるフルスタックフレームワーク • TurboGears ( → Pylonsと統合) • Pylons (→ Pyramidと統合) • Pyramid - Python3へ対応済み、Zope由来、自由度最大 • Flask - マイクロフレームワーク by @mitsuhiko • web2py - 今日紹介するものです
12.
web2pyとは? • web2pyは高速、スケーラブルでセキュアかつポータブルなデータベース 駆動型のWebアプリケーションをアジャイルで開発するための、フ リーかつオープンソースなエンタープライズ向けWebアプリケーション フレームワークです。 • もちろん全てPythonで書かれています。 •
ライセンスは LGPL version 3 License • 最新バージョンは一昨日出たばかりの2.0.9 (2012-09-13 23:51:30) stable • 作者は、アメリカのDePaul University College of Computing and Digital Media (CDM)でコンピュータ・サイエンスを教えている、Dr. Massimo Di Pierroで、Massimoさんは、元々は物理屋さんです。
13.
web2pyの特徴・その1 • フルスタックのフレームワーク • セキュリティを重要視している •
全てブラウザのみで開発が可能 • インストール不要 → web2py_src.zipを展開するだけで使用可能に • そのままGAEにデプロイが可能 • 開発当初より後方互換性を維持
14.
フルスタックとは? • SSLとストリーミングが可能なWebサーバー • SQLを動的に作成するデータベース抽象レイヤ
(DAL) • 多様な認証方式とロールベースアクセス制御 • Localの他, OpenID, OAuth, Janrain, CAS連携等が可能 • グループとロールベースによる完全なアクセス制御 • エラーロギングとチケットシステムの統合 • スケーラビリティのための様々なキャッシュメソッド、等々
15.
セキュリティ重視 • The Open
Web Application Security Project (OWASP) のいうと ころのセキュリティ上の問題トップ10を未然に防ぐための仕 組みを内蔵 • クロスサイトスクリプティング • インジェクションフロー • ディレクトリトラバーサル • 悪意のあるファイルの実行 • Audit Trail (監査証跡) 機能も追加されている
16.
Web IDEでブラウザによる開発 • 強力な機能を持つWeb
IDEを標準で持つ • 開発、テスト、デプロイ、メンテナンスといったアプリ ケーション開発の各フェーズに対して、ローカルやリ モートから操作のできるWebのインターフェイスを提供 • 新規アプリ作成時のウィザード機能も追加された • Mercurialがインストールされていれば、バージョン管理 までWeb IDE上で可能になった • 結論として、ブラウザのみで全ての開発が可能です
17.
Emacsによる開発も可能 • とはいえ、Web IDEは単なる釣りです •
Emacsのみによる開発ももちろん可能です • 通常はEmacsでソースコードを編集し、ターミナルから web2py用のシェルを起動して動作確認を行います • ipythonがインストールされていれば、それを使います • bpythonがインストールされていればそちらを優先します • 開発中のイメージを次に…
18.
GAEへのデプロイ • 一部制限はあるものの、GAEにデプロイしてそのまま 動作させることが可能 • 一部制限とはDB設計の根本的な違いが原因 →
BigTableはRDBではないため • アプリケーションID以外はソースコード以外の設定 ファイル等も書き換える必要なし • GAEへのデプロイに関しても、今はWeb IDEからク リック一発でインストールが可能に
19.
web2pyの特徴・その2 • 多くのDBに対応した強力なDAL機能 • 強力なテンプレート機能を備えたView機能 •
AppAdminはDjangoAdminとは少し方向性が違うが非常に便利 • RESTやSOAP等、多くのWeb Serviceに標準で対応 • 全てにおいてデフォルト値を持つ → 初期状態において、設定なしですぐに動作可能 • ボイラープレートコードを極限まで排除 • ネット上のコミュニティが活発 → 進化がとても早い
20.
DALの存在 • DAL (=
Database Abstraction Layer)は本当に便利です • あくまでもデータベース抽象レイヤーです → 他のFWが持つようなO/Rマッパーではないので注意が必要 • 実際に使ってみて非常によく出来ている → DjangoのO/Rマッパーに不満を持っている方は一度お試しを • デフォルトで非常に多くのデータベースに対応 • SQlite, MySQL, PostgreSQL, Oracle, MSSQL, DB2, Firebird, MyBase, Informix, Google App Engine • RDBMSの他、GAE (BigTable)にも対応している • 最近では、MongoDB等のNoSQLにも対応済み
21.
Pythonなのにimport文が不要 • ボイラープレートコードを極限まで排除 • フレームワークの基本機能に関しては、importが不要 •
VとCにおいて、HTMLタグをPythonの関数で作ることが可能 • その代わり、フレームワーク側でexecfileを行い、グローバルレベル での環境を作ってしまう! • とはいえ、それはやってもいいのか? • 古参PythonistaでPythonic重視派からは異端視 • ネット上どこの掲示板へ行っても、世界中からdisられる原因に • そこへ、原作者のDr. Massimoさんが必ず出てきて反論を…
22.
二年間使ってきた私の今の印象 • DBへの操作が必要なWebアプリを、とにかく手軽に素早く作るのには向い ている • 業務用Webアプリも、最初にとにかく早く作る上では十分に役だった •
ところが、段々と辛くなってきます • O/Rマッパーではないので、テーブルに対応するクラスを持つべきか、持 たざるべきか? • テスト容易性(Testability)の問題 • 結局、多くの機能は順次モジュール化していきます • 以前はlocal_import()関数でしたが、今は普通にimportでいけます • 本格的な販売管理等の業務アプリケーションを作る際には再考が必要です
23.
実際の使用例 PyCon Asia Pacific
2012 • PyCon Asia Pacific 2012のサイト構築で使 われています • web2pyのアプリケーション、Conf2pyを 使って構築されているそうです • 実際にサイトを見てみましょう
24.
アプリの例: Conf2py • Open
Source Conference Management System (GPL2) • Massimo Di Pierroさんによって作られたweb2pyのアプリケーション • MetaCryption LLCにより、サポートも提供されている • スライドショー: • http://www.slideshare.net/mdipierro/conf2py • web2py appとしてダウンロード (sourceも含む): • http://conf2py.googlecode.com/files/web2py.app.conf2py.w2p • ソースのみダウンロード (google codeより): • hg clone https://conf2py.googlecode.com/hg/ conf2py • オンライン・ビデオ(バージョンは古いものが対象): • http://vimeo.com/1838049 http://vimeo.com/12157148
25.
ライブコーディング • ここで、実際にライブコーディングで プログラムを作ってみましょう
26.
web2py関連の情報源 • web2pyの公式サイト • http://www.web2py.com/ •
日本語化プロジェクト(web2py japan) • http://groups.google.co.jp/group/web2py- japan
27.
まとめ • GAEについて • Pythonについて •
web2pyについて • ライブコーディング • GAEへのデプロイ
28.
勉強会の紹介 • 私が主催する勉強会 (立ち上げた順) •
Python札幌 • 数学勉強会@札幌 • クラウド研究会@札幌
29.
最後に • ご清聴ありがとうございました。