Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Pythonおじさんのweb2py挑戦記
Report
Yoshiyuki Nakamura
Follow
Freelance Software Engineer at home
May. 25, 2014
•
0 likes
8 likes
×
Be the first to like this
Show More
•
5,228 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Check these out next
210630 python
Takuya Nishimoto
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
チームで活用するAnaconda入門
Takeshi Akutsu
Python札幌 2012/06/17
Shinya Okano
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
Django で始める PyCharm 入門
kashew_nuts
Python & PyConJP 2014 Report
gree_tech
1
of
29
Top clipped slide
Pythonおじさんのweb2py挑戦記
May. 25, 2014
•
0 likes
8 likes
×
Be the first to like this
Show More
•
5,228 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Report
Software
2012-09-16 Python Conference Japan 2012 中村 良幸 @nakayoshix Python札幌 / 数学勉強会@札幌 / クラウド研究会@札幌
Yoshiyuki Nakamura
Follow
Freelance Software Engineer at home
Advertisement
Advertisement
Advertisement
Recommended
Djangoとweb2pyをapacheに組込む
2bo 2bo
2.2K views
•
48 slides
Rubyとプログラミング言語の潮流
Kazuhiko Kato
1.9K views
•
22 slides
続Pythonによるwebスクレイピング入門
Hironori Sekine
20.5K views
•
60 slides
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
27.7K views
•
29 slides
Pyconjp2016 pyftplib
Shinya Okano
2.4K views
•
23 slides
10分でわかるPythonの開発環境
Hisao Soyama
132.3K views
•
33 slides
More Related Content
Slideshows for you
(20)
210630 python
Takuya Nishimoto
•
254 views
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
•
28K views
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
•
3.4K views
チームで活用するAnaconda入門
Takeshi Akutsu
•
3.2K views
Python札幌 2012/06/17
Shinya Okano
•
1.6K views
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
•
11.8K views
Django で始める PyCharm 入門
kashew_nuts
•
5.4K views
Python & PyConJP 2014 Report
gree_tech
•
2.9K views
PyCharm入門
Yuki Nagai
•
12.1K views
S18 t0 introduction
Takeshi Akutsu
•
1.2K views
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
•
6.4K views
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
•
211.5K views
Pythonの環境導入 2014年春季版
Katsuhiro Morishita
•
8.1K views
14対話bot発表資料
Keiichirou Miyamoto
•
1.7K views
2006-04-22 CLR/H #14 .NET and open source
Yoshiyuki Nakamura
•
812 views
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
Yuya Kato
•
6.4K views
高速にコンテナを起動できるイメージフォーマット
Akihiro Suda
•
3.7K views
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
•
1.2K views
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
•
21.2K views
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
•
3.1K views
Viewers also liked
(20)
自社開発をしていなかった会社が Python を選んだ理由
Daisuke Komatsu
•
4.6K views
2012-07-07 Sapporo.r #1 LT発表資料 「仕事で使うR」
Yoshiyuki Nakamura
•
1.2K views
クラウド温泉への誘い 2015-08-01 「第48回データマイニング+WEB@東京」版
Yoshiyuki Nakamura
•
5K views
DL on Azure ML with Python where type DL = Deep Learning | Deep LOVE
Yoshiyuki Nakamura
•
1.8K views
Wrapping a C++ library with Cython
fuzzysphere
•
4K views
No te comas la coma
Pablo Rico
•
4.9K views
Scalaと過ごした5ヶ月間
Haruki Okada
•
3.5K views
Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること
Kei Nakazawa
•
36.5K views
Hpcビジネスコンテンスト発表資料
Hironori Nakajo
•
835 views
Pythonについて
Kenji NAKAGAKI
•
1K views
ScalaでAndroidアプリ開発
papamitra
•
3K views
Scala初心者がPlay/ScalaでロックなWebアプリを作ったお話
omi end
•
3K views
Scala 初めての人が Heroku で Web アプリを公開するまで
Hideaki Miyake
•
6K views
多分モダンなWebアプリ開発
tak-nakamura
•
4.4K views
Pythonの開発環境を調べてみた
Kenji NAKAGAKI
•
13.4K views
数理最適化とPython
Yosuke Onoue
•
22.3K views
Google App EngineでTwitterアプリを作ろう
kenji4569
•
1.4K views
めんどくさくない Scala #kwkni_scala
Kazuhiro Sera
•
18.1K views
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
Insight Technology, Inc.
•
1.5K views
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
Masaki Hayashi
•
34.4K views
Advertisement
Similar to Pythonおじさんのweb2py挑戦記
(20)
Hueによる分析業務の改善事例
Masahiro Kiura
•
2.8K views
クラウドセキュリティ基礎
Masahiro NAKAYAMA
•
7.7K views
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
•
943 views
The seminar of asp.net at 201908 sakurug
SAKURUG co.
•
109 views
20180723 PFNの研究基盤 / PFN research system infrastructure
Preferred Networks
•
8.8K views
ChainerMNをDocker containerで動かす
Daisuke Taniwaki
•
212 views
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
•
4.6K views
「宣言的プログラミング」とSDNのひとつの形態
npsg
•
2.4K views
Mk network programmability-03
Miya Kohno
•
2K views
Node-redでプロトタイピング
Makoto SAKAI
•
4.2K views
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Takuya Kikuchi
•
3.2K views
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
Kazumi IWANAGA
•
1.9K views
Windows Azure for PHP Developers
fumios
•
1.1K views
Microservices and Servcie Mesh on Azure
Tsukasa Kato
•
382 views
WebDB Forum 2012 基調講演資料
Recruit Technologies
•
4.3K views
Gmo media.inc 第9回西日本ossの普及を考える会
Dai Utsui
•
1.3K views
作る人から作りながら運用する人になっていく
Ryo Mitoma
•
968 views
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
充博 大崎
•
859 views
クラウドでビックデータのスモールスタート
Yukihito Kataoka
•
1.2K views
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
Code4Lib JAPAN
•
391 views
Recently uploaded
(20)
留信网认证可查【莱比锡大学文凭证书毕业证购买】
khh123kj
•
2 views
①【卡毕兰诺大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
☀️【伯明翰大学毕业证成绩单留学生首选】
25mjhd12
•
2 views
留信网认证可查【波恩大学文凭证书毕业证购买】
khh123kj
•
2 views
留信网认证可查【俄克拉荷马大学文凭证书毕业证购买】
1lkjhg
•
2 views
①【利兹贝克特大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
在哪里可以做《邦德大学文凭证书|毕业证》
kjds1245
•
2 views
留信网认证可查【伯明翰大学文凭证书毕业证购买】
32lkhng
•
2 views
留信网认证可查【威得恩大学文凭证书毕业证购买】
32lkhng
•
2 views
在哪里可以做《俄克拉荷马大学文凭证书|毕业证》
lobd15
•
2 views
☀️【密德萨斯大学毕业证成绩单留学生首选】
25mjhd12
•
6 views
①【威得恩大学毕业证文凭学位证书|工艺完美复刻】
0987hgh789
•
2 views
①【伦敦政治经济学院毕业证文凭学位证书|工艺完美复刻】
0987hgh789
•
2 views
留信网认证可查【太平洋大学文凭证书毕业证购买】
hh123hh1
•
2 views
留信网认证可查【新学院文凭证书毕业证购买】
hh123hh1
•
2 views
留信网认证可查【伊利诺伊理工学院文凭证书毕业证购买】
1lkjhg
•
2 views
☀️《USD毕业证仿真》
jjkjkijk
•
2 views
国外学历【奥克兰商学院研究生文凭毕业证留学生首选】
jsad789
•
2 views
留信网认证可查【萨福克大学文凭证书毕业证购买】
hh123hh1
•
3 views
留信网认证可查【麻省大学洛威尔分校文凭证书毕业证购买】
hh123hh1
•
2 views
Advertisement
Pythonおじさんのweb2py挑戦記
Pythonおじさんの web2py挑戦記 2012-09-16 Python Conference
Japan 2012 中村 良幸 @nakayoshix Python札幌 / 数学勉強会@札幌 / クラウド研究会@札幌
今日のアジェンダ • 自己紹介と札幌の勉強会事情 • PythonのWeb
Application Framework • web2pyの特徴的な機能及び利点と欠点 • web2pyの事例紹介 • web2pyによるライブコーディング • まとめ
自己紹介 • 中村 良幸 →
なかむら よしゆき → なかよし(ワタミメソッド) → nakayoshix(xを付けて) → 統合ID: nakayoshix です。(キリッ
仕事でやってきたこと • 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による業務用アプリ開発を色々と…
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で
Pythonによる自社用アプリケーション開発歴 • 2010年∼2012年にかけて、SSLサーバ証明書の申請管理システムを開発 • 初めてのweb2pyによる業務用Webアプリケーションの開発 •
他システムとのAPI連携がたくさん • Google Apps, Zoho CRM, kintone, JIRAとの間のREST API連携 • Root CAとの間の証明書ベースによる暗号化されたSOAP API連携 • ぼっちdeveloperゆえ、基本的に全て独りで開発。最近ではサーバーへの デプロイ、サーバの保守管理、セキュリティ、ログ管理、社内PC管理 等々まで独りで… • 本当は、今日はその実際の事例を紹介しようと思っていましたが、諸般 の事情でそれが不可能になりました。
というわけで… •Pythonおじさんです。(キリッ
勉強会活動について • 札幌で色々と勉強会を主宰しています • Python札幌
/ from sapporo import *; with the Zen of Python • 現在、「Python初学者向け読書会@札幌」を隔週木曜で開催中 • 数学勉強会@札幌 / 大人のためのやり直しの数学勉強会 • 現在、「解析の基礎」を教科書に、毎週月曜に勉強会を開催中 • クラウド研究会@札幌 / 年に一度の「クラウド温泉@小 」 • 現在、「ぼちぼちHaskell勉強会@札幌」を隔週木曜で開催中 • 勉強会充です。(キリッ
その他、趣味とか興味とか • オープンソース関連活動 • オープンソースのCRM,
openCRXの日本語化 • openCRXのベースとなるMDAフレームワーク、openMDX • 最近興味があるのは… • 関数型言語、特にHaskell (ついでにScala & F#) • Monadとその理論的背景である圏論、代数構造 • 好きなエディタはEmacs • Emacs歴24年になります。自称・Emacsおじさんです。(キリッ • 日常生活では • 1994年からヨーガを始めたので、ヨーガ歴24年です。
前置きはここまで • ここからが本編です
Pythonで作られた各種の Web Application Framework •
Django - 豊富な実績、多くのPaaSでも標準で使える いわゆるフルスタックフレームワーク • TurboGears ( → Pylonsと統合) • Pylons (→ Pyramidと統合) • Pyramid - Python3へ対応済み、Zope由来、自由度最大 • Flask - マイクロフレームワーク by @mitsuhiko • web2py - 今日紹介するものです
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さんは、元々は物理屋さんです。
web2pyの特徴・その1 • フルスタックのフレームワーク • セキュリティを重要視している •
全てブラウザのみで開発が可能 • インストール不要 → web2py_src.zipを展開するだけで使用可能に • そのままGAEにデプロイが可能 • 開発当初より後方互換性を維持
フルスタックとは? • SSLとストリーミングが可能なWebサーバー • SQLを動的に作成するデータベース抽象レイヤ
(DAL) • 多様な認証方式とロールベースアクセス制御 • Localの他, OpenID, OAuth, Janrain, CAS連携等が可能 • グループとロールベースによる完全なアクセス制御 • エラーロギングとチケットシステムの統合 • スケーラビリティのための様々なキャッシュメソッド、等々
セキュリティ重視 • The Open
Web Application Security Project (OWASP) のいうと ころのセキュリティ上の問題トップ10を未然に防ぐための仕 組みを内蔵 • クロスサイトスクリプティング • インジェクションフロー • ディレクトリトラバーサル • 悪意のあるファイルの実行 • Audit Trail (監査証跡) 機能も追加されている
Web IDEでブラウザによる開発 • 強力な機能を持つWeb
IDEを標準で持つ • 開発、テスト、デプロイ、メンテナンスといったアプリ ケーション開発の各フェーズに対して、ローカルやリ モートから操作のできるWebのインターフェイスを提供 • 新規アプリ作成時のウィザード機能も追加された • Mercurialがインストールされていれば、バージョン管理 までWeb IDE上で可能になった • 結論として、ブラウザのみで全ての開発が可能です
Emacsによる開発も可能 • とはいえ、Web IDEは単なる釣りです •
Emacsのみによる開発ももちろん可能です • 通常はEmacsでソースコードを編集し、ターミナルから web2py用のシェルを起動して動作確認を行います • ipythonがインストールされていれば、それを使います • bpythonがインストールされていればそちらを優先します • 開発中のイメージを次に…
GAEへのデプロイ • 一部制限はあるものの、GAEにデプロイしてそのまま 動作させることが可能 • 一部制限とはDB設計の根本的な違いが原因 →
BigTableはRDBではないため • アプリケーションID以外はソースコード以外の設定 ファイル等も書き換える必要なし • GAEへのデプロイに関しても、今はWeb IDEからク リック一発でインストールが可能に
web2pyの特徴・その2 • 多くのDBに対応した強力なDAL機能 • 強力なテンプレート機能を備えたView機能 •
AppAdminはDjangoAdminとは少し方向性が違うが非常に便利 • RESTやSOAP等、多くのWeb Serviceに標準で対応 • 全てにおいてデフォルト値を持つ → 初期状態において、設定なしですぐに動作可能 • ボイラープレートコードを極限まで排除 • ネット上のコミュニティが活発 → 進化がとても早い
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にも対応済み
Pythonなのにimport文が不要 • ボイラープレートコードを極限まで排除 • フレームワークの基本機能に関しては、importが不要 •
VとCにおいて、HTMLタグをPythonの関数で作ることが可能 • その代わり、フレームワーク側でexecfileを行い、グローバルレベル での環境を作ってしまう! • とはいえ、それはやってもいいのか? • 古参PythonistaでPythonic重視派からは異端視 • ネット上どこの掲示板へ行っても、世界中からdisられる原因に • そこへ、原作者のDr. Massimoさんが必ず出てきて反論を…
二年間使ってきた私の今の印象 • DBへの操作が必要なWebアプリを、とにかく手軽に素早く作るのには向い ている • 業務用Webアプリも、最初にとにかく早く作る上では十分に役だった •
ところが、段々と辛くなってきます • O/Rマッパーではないので、テーブルに対応するクラスを持つべきか、持 たざるべきか? • テスト容易性(Testability)の問題 • 結局、多くの機能は順次モジュール化していきます • 以前はlocal_import()関数でしたが、今は普通にimportでいけます • 本格的な販売管理等の業務アプリケーションを作る際には再考が必要です
実際の使用例 PyCon Asia Pacific
2012 • PyCon Asia Pacific 2012のサイト構築で使 われています • web2pyのアプリケーション、Conf2pyを 使って構築されているそうです • 実際にサイトを見てみましょう
アプリの例: 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
ライブコーディング • ここで、実際にライブコーディングで プログラムを作ってみましょう
web2py関連の情報源 • web2pyの公式サイト • http://www.web2py.com/ •
日本語化プロジェクト(web2py japan) • http://groups.google.co.jp/group/web2py- japan
まとめ • GAEについて • Pythonについて •
web2pyについて • ライブコーディング • GAEへのデプロイ
勉強会の紹介 • 私が主催する勉強会 (立ち上げた順) •
Python札幌 • 数学勉強会@札幌 • クラウド研究会@札幌
最後に • ご清聴ありがとうございました。
Advertisement