プログラムは、用いる言葉の選択で決まるスマートフォン用の表示で見るプログラムは、用いる言葉の選択で決まる2015-06-18【Bottle】@viewデコレータを自前で定義する【Jinja2】Python通常Bottleを使用する場合は、使用するテンプレートに併せて必要なメソッドやデコレータをインポートして用いることで、viewテンプレートの描画を非常に簡単に行うことが出来ます。Jinja2テンプレートを使用し、メソッドでviewテンプレートの描画を行う場合は以下のようになります。some_func())また、同様の処理をデコレータで実装すると以下のようになります。dict(data=some_func())このメソッド群は非常に便利ですが、細かいセッティングをしようとすると、少なくない問題が発生します。テンプレート側で何らかの関数を利用したい場合、jinja2.Environmentのglobalsに追加しますが、bottleに用意されているメソッドでそれを実装するのは少々難しいです(そこまでソースコードを読んでいないので可能かもしれません)。いうわけで、templateの展開を行うviewデコレータを自力で実装してしまえという結論に至ります。新しいview用のファイルをdecoview.pyという名前で作成し、以下のようにします。decoratorせっかくなのでautoescapeもTrueにしてみました。新しく作成したdecoviewをインポートして使用すれば、jinja2テンプレートファイルの中でsome_func()が実行可能です。{}例えば下記のようにjinja2テンプレートを呼び出します。some_func!という文字列が表示されていることと思います。framework】viewの中で使用するserializerを変更するModelViewSetなんかを使用していると、それぞれのアクション毎...2015-06-15【Jinja2】特別な定数は小文字を使うNoneってなんだよと度々怒られたのでメモ。Meスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。