Weitere ähnliche Inhalte
Ähnlich wie Pythonおじさんのweb2py挑戦記 (20)
Pythonおじさんの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で
- 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年です。
- 11. Pythonで作られた各種の
Web Application Framework
• Django - 豊富な実績、多くのPaaSでも標準で使える
いわゆるフルスタックフレームワーク
• TurboGears ( → Pylonsと統合)
• Pylons (→ Pyramidと統合)
• Pyramid - Python3へ対応済み、Zope由来、自由度最大
• Flask - マイクロフレームワーク by @mitsuhiko
• web2py - 今日紹介するものです
- 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がインストールされていればそちらを優先します
• 開発中のイメージを次に…
- 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にも対応済み
- 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