Submit Search
Upload
pyramid_layoutと僕と、ときどきzope.interface
•
0 likes
•
796 views
H
hirokiky
Follow
pyramid_layoutのpanelとは、どのようなものか。どう使ったか。 あと、zope.interfaceで模索したことについて。 LT。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 25
Download now
Download to read offline
Recommended
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013
hirokiky
Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法
Ian Lewis
簡単な算数でできる文章校正
簡単な算数でできる文章校正
hirokiky
エンジニアが起業のアイディアを見つける方法
エンジニアが起業のアイディアを見つける方法
hirokiky
それ、公開しちゃおうよ - みんなのPython勉強会63登壇
それ、公開しちゃおうよ - みんなのPython勉強会63登壇
hirokiky
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
hirokiky
営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと
hirokiky
LLoT ランゲージアップデート Python
LLoT ランゲージアップデート Python
hirokiky
Recommended
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013
hirokiky
Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法
Ian Lewis
簡単な算数でできる文章校正
簡単な算数でできる文章校正
hirokiky
エンジニアが起業のアイディアを見つける方法
エンジニアが起業のアイディアを見つける方法
hirokiky
それ、公開しちゃおうよ - みんなのPython勉強会63登壇
それ、公開しちゃおうよ - みんなのPython勉強会63登壇
hirokiky
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
hirokiky
営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと
hirokiky
LLoT ランゲージアップデート Python
LLoT ランゲージアップデート Python
hirokiky
How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015
hirokiky
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96
hirokiky
Pycon2014 django performance
Pycon2014 django performance
hirokiky
gargant.dispatch, a flexible dispatcher for WSGI
gargant.dispatch, a flexible dispatcher for WSGI
hirokiky
軽量のススメ
軽量のススメ
hirokiky
django-websettingsの紹介
django-websettingsの紹介
hirokiky
My pyhack 1301
My pyhack 1301
hirokiky
Useful Django 1.4
Useful Django 1.4
hirokiky
使えるDjango1.4
使えるDjango1.4
hirokiky
個人の嗜好を学習し記事を推奨するフィードリーダ
個人の嗜好を学習し記事を推奨するフィードリーダ
hirokiky
卒研中間発表資料:個人に最適化したフィードリーダの構築
卒研中間発表資料:個人に最適化したフィードリーダの構築
hirokiky
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
More Related Content
More from hirokiky
How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015
hirokiky
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96
hirokiky
Pycon2014 django performance
Pycon2014 django performance
hirokiky
gargant.dispatch, a flexible dispatcher for WSGI
gargant.dispatch, a flexible dispatcher for WSGI
hirokiky
軽量のススメ
軽量のススメ
hirokiky
django-websettingsの紹介
django-websettingsの紹介
hirokiky
My pyhack 1301
My pyhack 1301
hirokiky
Useful Django 1.4
Useful Django 1.4
hirokiky
使えるDjango1.4
使えるDjango1.4
hirokiky
個人の嗜好を学習し記事を推奨するフィードリーダ
個人の嗜好を学習し記事を推奨するフィードリーダ
hirokiky
卒研中間発表資料:個人に最適化したフィードリーダの構築
卒研中間発表資料:個人に最適化したフィードリーダの構築
hirokiky
More from hirokiky
(11)
How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96
Pycon2014 django performance
Pycon2014 django performance
gargant.dispatch, a flexible dispatcher for WSGI
gargant.dispatch, a flexible dispatcher for WSGI
軽量のススメ
軽量のススメ
django-websettingsの紹介
django-websettingsの紹介
My pyhack 1301
My pyhack 1301
Useful Django 1.4
Useful Django 1.4
使えるDjango1.4
使えるDjango1.4
個人の嗜好を学習し記事を推奨するフィードリーダ
個人の嗜好を学習し記事を推奨するフィードリーダ
卒研中間発表資料:個人に最適化したフィードリーダの構築
卒研中間発表資料:個人に最適化したフィードリーダの構築
Recently uploaded
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Recently uploaded
(9)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
pyramid_layoutと僕と、ときどきzope.interface
1.
2012/5/13 pyramid_layoutと 僕と ときどきzope.interface hirokiky 13年5月16日木曜日
2.
Pyramidでアプリ作る ✤ 集計アプリを作りたい ✤ panelやべぇ 13年5月16日木曜日
3.
panelって? ✤ pyramid_layoutの一機能 ✤ 部分的なview,
templateをテンプレートから指定する感じ 13年5月16日木曜日
4.
panel @panel_config( name='sidebar', renderer='sakila:templates/panels/sidebar.mako' ) def sidebar(context, request): return
dict(menus=[ (u'速報', request.route_url('home')), (u'ランキング', '#'), ]) 13年5月16日木曜日
5.
panelのテンプレート <div class="well sidebar-nav"> <ul
class="nav nav-list"> % for menu, url in menus: <li><a href="${url}">${menu}</a></li> % endfor </ul> </div><!--/.well --> sidebar関数の返り値がpanelのテンプレートに渡る 13年5月16日木曜日
6.
Template <html> ## ... ${panel('sidebar')} ## ... </html> 実際のTemplateからはpanelの名前を指定するだけ 13年5月16日木曜日
7.
最終的に <html> ## ... <div class="well
sidebar-nav"> <ul class="nav nav-list"> <li><a href="/">売上速報</a></li> <li><a href="#">ランキング</a></li> </ul> </div><!--/.well --> ## ... </html> 13年5月16日木曜日
8.
panelやべぇ ✤ 画面要素を自由に切り貼りできる ✤ iGoogleのように画面を組み立てれるのでは 夢のよう!! 13年5月16日木曜日
9.
できつぅあ サイドバーpanel 折れ線グラフpanel 13年5月16日木曜日
10.
実は この前に一回panel諦めてviewで書いた request.contextから値とるようにしたらpanelで書けた 13年5月16日木曜日
11.
panel良い ✤ 好きなだけ置くことができる ✤ テンプレートから引数も取れる 13年5月16日木曜日
12.
panelつらい ✤ NotFoundが投げれない(Templateの描画エラーになる) ✤ 画面で共通の引数を渡すのが面倒くさい 13年5月16日木曜日
13.
折れ線グラフに必要な処理 ✤ リクエストパラメーターから集計期間を取る ✤ リクエストパラメーターのバリデーションチェック ✤
DBアクセス、折れ線グラフ集計 (ペアのリスト) ✤ 折れ線グラフ化 (x, yなど分割して取れるようにする) ✤ JSライブラリ依存の形式に変換 ✤ テンプレートに適切に値を与えて表示 13年5月16日木曜日
14.
折れ線グラフに必要な処理 ✤ リクエストパラメーターから集計期間を取る ✤ リクエストパラメーターのバリデーションチェック ✤
DBアクセス、折れ線グラフ集計 (ペアのリスト) ✤ 折れ線グラフ化 (x, yなど分割して取れるようにする) ✤ JSライブラリ依存の形式に変換 ✤ テンプレートに適切に値を与えて表示 request.context アダプタ 関数 panel 13年5月16日木曜日
15.
request.context.summary class SakilaResource(object): # ... @property def
linechart(self): c = DBSession.query( sql.func.date(Payment.payment_date).label('date'), sql.func.sum(Payment.amount), ). filter(self.conditions).group_by('date').all() return c ユーザー入力から条件を取るプロパティ 13年5月16日木曜日
16.
panel @panel_config( name='linechart', renderer='sakila:templates/panels/linechart.mako') def line_chart(context, request,
renderTo='container'): highcharts.need() adapter = LinechartDataAdapter(request.context.linechart) options = daily_linechart_options(adapter.x, adapter.y, renderTo=renderTo) return {'options': options, 'renderTo': renderTo} options, rendecToからHighchartsを表示 13年5月16日木曜日
17.
( ˘⊖˘) 。o(待てよ ✤
折れ線グラフで例えば日次、月次、年次のグラフを切り替えたい ✤ Highchartsだけでなく、その他のJSライブラリにも切り替えたい 13年5月16日木曜日
18.
▂▅▇█▓▒░('ω')░▒▓█▇▅▂ @panel_config( name='linechart', renderer='sakila:templates/panels/linechart.mako') def line_chart(context, request,
renderTo='container'): highcharts.need() adapter = LinechartDataAdapter(request.context.linechart) options = daily_linechart_options(adapter.x, adapter.y, renderTo=renderTo) return {'options': options, 'renderTo': renderTo} 何らかの指定によって色々変えたい 13年5月16日木曜日
19.
zope.interface ✤ まずInterfaceを定めて、そこにあとから実装を付ける ✤ Adaptationしたい 13年5月16日木曜日
20.
もさく IResource ILinechart IRenderer ResourceDailyLinechart LinechartHighchartsRenderer 13年5月16日木曜日
21.
もさく list ILinechart IHighcharts ListLinechart LinechartHighcharts 13年5月16日木曜日
22.
例えばこんなpanel def linechart(context, request,
renderTo='container', type=‘daily’): highcharts.need() reg = request.registry.getAdapter(request.context.linechart, IHighchart, type) options = reg.getOptions(renderTo=renderTo) return dict(options=options, renderTo=renderTo) panelがhighchartsに依存してる 13年5月16日木曜日
23.
あとzope.interfaceは隠したい ✤ zope.interfaceは隠すとお行儀がいいらしい ✤ 利用者(アプリ開発者)にはapiだけ提供する ✤
開発者(ライブラリ開発者)は内部でzope.interfaceを使う ✤ まぁzope.interfaceわかりにくいし 13年5月16日木曜日
24.
妄想色々 @tochart_config('daily.linechart.highcharts', chart_type='linechart', chart_backend='highcharts') @tochart_config(‘daily.linechart.graphel’, chart_type=‘linechart’, chart_backend=‘graphel’) def daily(request, data) x
= 1 y = 2 return [(x, y), (x, y)] chart = tochart(request, data, 'daily.linechart.highcharts') chart.render() https://gist.github.com/hirokiky/5567640 13年5月16日木曜日
25.
やってるとこです ✤ MySQLのサンプルデータベース「sakila」を集計していますのよ ✤ https://github.com/hirokiky/aggregating_sakila 13年5月16日木曜日
Download now