django-websettingsの紹介
@hirokiky
Agenda
● お前だれよ
● なんで作ったの
● 紹介
● Yet Another ModelFormを作る
お前だれよ
● @hirokiky
● 最近Macbook Airにビールかけて壊した
なんで作ったの
settingsみたいな値をWebから入力したい
● 少しの設定修正で反映作業が必要になり不便
● 運用担当に値の設定を任せたい
作ったもの
django-websettings
使い方
● Yet Another settings.py を書く
● Webインタフェースから値の設定
● 設定値を使ってみる
Yet Another settings.py
# In websettings.py file
HTT_DRUM_PLAYER = 'Ritsu Tainaka'
HTT_BASS_PLAYER = 'Mio Akiyama'
設定値のキーと...
設定値をとってみる
>>> from websettings import websettings
>>> websettings.HTT_BASS_PLAYER
'Mio Akiyama'
今はデフォルト値がとれる
自動生成のWebインタフェース
Webインタフェースから入力
再度、値をとる
>>> from websettings import websettings
>>> websettings.HTT_BASS_PLAYER
'Jun Suzuki'
Mio -> Jun で変化している
demo
● websettings.py追記
● 設定値の取得
● Webインタフェースからの設定
● 再度取得
django-websettings現状
● バージョン1.0b
● Github:hirokiky/django-websettings
Advanced
● バックエンドを変更可能(1.0ではDBのみ提供)
● コマンドから設定値の出力が可能(freeze用途)
Yet Another ModelForm
websettings.pyをもとにFormの自動生成が必要
独自の、ModelFormライクなクラスを作った
websettings.forms.SettingStoreForm
SettingStoreForm
● websettings.pyの値をもとにForm作成
● 各設定値のキーをフィールド名
● 各設定値のバリューを初期値
● 255文字のCharField
Metaclassを書く
● __new__でnew_classにbase_fields属性を指定
● {名前: Fieldのインスタンス}のSortedDict
● django.forms.models.ModelFormMetaclass
ちなみに
● 普通のFormはDeclerativeFieldsMetaclass
● colandarでも似たことやった
DjangoAdminについて思った
● Modelの管理でしかない
● 汎用「管理サイト」としてプラグ可能な拡張は無理
まとめ
● django-websettings 作った
● django-websettingsはWebから入力できるsettings
● 独自Formは簡単に作れる
Upcoming SlideShare
Loading in...5
×

django-websettingsの紹介

406

Published on

Webインタフェース経由で設定値を入力できるdjangoライブラリのdjango-websettingsの紹介。
さらにライブラリ内で使われる技術についても説明している。

Published in: Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
406
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "django-websettingsの紹介"

  1. 1. django-websettingsの紹介 @hirokiky
  2. 2. Agenda ● お前だれよ ● なんで作ったの ● 紹介 ● Yet Another ModelFormを作る
  3. 3. お前だれよ ● @hirokiky ● 最近Macbook Airにビールかけて壊した
  4. 4. なんで作ったの settingsみたいな値をWebから入力したい ● 少しの設定修正で反映作業が必要になり不便 ● 運用担当に値の設定を任せたい
  5. 5. 作ったもの django-websettings
  6. 6. 使い方 ● Yet Another settings.py を書く ● Webインタフェースから値の設定 ● 設定値を使ってみる
  7. 7. Yet Another settings.py # In websettings.py file HTT_DRUM_PLAYER = 'Ritsu Tainaka' HTT_BASS_PLAYER = 'Mio Akiyama' 設定値のキーとデフォルト値を指定する
  8. 8. 設定値をとってみる >>> from websettings import websettings >>> websettings.HTT_BASS_PLAYER 'Mio Akiyama' 今はデフォルト値がとれる
  9. 9. 自動生成のWebインタフェース
  10. 10. Webインタフェースから入力
  11. 11. 再度、値をとる >>> from websettings import websettings >>> websettings.HTT_BASS_PLAYER 'Jun Suzuki' Mio -> Jun で変化している
  12. 12. demo ● websettings.py追記 ● 設定値の取得 ● Webインタフェースからの設定 ● 再度取得
  13. 13. django-websettings現状 ● バージョン1.0b ● Github:hirokiky/django-websettings
  14. 14. Advanced ● バックエンドを変更可能(1.0ではDBのみ提供) ● コマンドから設定値の出力が可能(freeze用途)
  15. 15. Yet Another ModelForm websettings.pyをもとにFormの自動生成が必要 独自の、ModelFormライクなクラスを作った websettings.forms.SettingStoreForm
  16. 16. SettingStoreForm ● websettings.pyの値をもとにForm作成 ● 各設定値のキーをフィールド名 ● 各設定値のバリューを初期値 ● 255文字のCharField
  17. 17. Metaclassを書く ● __new__でnew_classにbase_fields属性を指定 ● {名前: Fieldのインスタンス}のSortedDict ● django.forms.models.ModelFormMetaclass
  18. 18. ちなみに ● 普通のFormはDeclerativeFieldsMetaclass ● colandarでも似たことやった
  19. 19. DjangoAdminについて思った ● Modelの管理でしかない ● 汎用「管理サイト」としてプラグ可能な拡張は無理
  20. 20. まとめ ● django-websettings 作った ● django-websettingsはWebから入力できるsettings ● 独自Formは簡単に作れる
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×