一定期間更新がないため広告を表示しています
djangoのテンプレートシステムはコンパイルとレンダリングという2つのプロセスで動作する。 大まかに言うと下記の様な動作をする。 コンパイルはテキストをノードに分割し、ノードの集合を作る処理を行う。 レンダリングによりコンパイルによって作られた各ノードのrenderメソッドを呼び出す。 よってカスタムタグを書くには、コンパイル関数でどのようなノードを返すか定義し、 返すノードでどのようなレンダリングをするかを書く必要がある。 但しコンパイル関数、レンダリングを書くのはかなり複雑。 そこでタグに引数を渡して文字列を返すみたいな処理はsimple_tagを利用すると楽に書ける。 ここではその書き方について示す。 testtag.py from django import template register = template.Library() @register.simple_tag d
django | 23:09django1.3 クラスベースビューの概要django1.3でクラスベースビューがサポートされるようになった。使い方は以下の通り。 from django.views.generic にViewとかが定義されている。 Viewはas_viewを呼ぶとrequest, *args, **kwargsを引き受けるcallableなオブジェクトを返す。 Viewのhttp_method_namesという属性に['get', 'post']といったようにサポートするリクエストメソッドを指定しておく。 Viewにget, post..といったインスタンスメソッドを定義するとリクエストメソッドに対応して呼ばれる。例を挙げると、こう。 from django.views.generic import View from django.http import HttpResp
django-skel¶ A modern Django 1.5 project skeleton. Django is a great framework. Unfortunately, like any framework, it is only as useful as the tools you use with it. This is where django-skel really shines. django-skel gives you a great project skeleton, complete with: Database migrations via South. Static file management via django-compressor. Task queueing via Celery. Helper utilities for workin
The Concept This idea is to provide an introduction to Test-Driven web development using Django (and Python). Essentially, we run through the same material as the official Django tutorial, but instead of 'just' writing code, we write tests first at each stage - both "functional tests", in which we actually pretend to be a user, and drive a real web browser, as well as "unit tests", which help us t
はじめにというか雑談 こんにちは。gumiの畠です。 先日GREEでスターフロンティアというゲームを公開しました。 ここ2か月くらいの忙しかった日々が報われたかと思うと感慨ひとしおです。 まぁ今も修正やら調整やらで忙しいのは変わらないのですが。。。 キャッシュを自動化しよう さて、本題です。 ソーシャルアプリのようなトラフィックが高いサービスを作るときはDBアクセスを減らすことが重要になります。 Djangoにはそのための機能であるdjango.core.cacheが存在していますので、DBアクセスの結果は積極的にキャッシュしたいところです。 ですが、各モデルにいちいちキャッシュの機構を組み込むのは面倒ですし、万が一消し忘れたりすると大変です。 そこで、スターフロンティアではキャッシュする抽象モデルクラス(AbstructCachedModel)を作って、ある程度のキャッシュを自動化してい
Django の csrf_token について、Twitter のフォロワーさんが困ってました。 以前同じように困った事があるから助け舟を出したのですが、 気になってググってみると日本語情報があまりないような? なので blog にまとめておきます。 ちなみに、公式ドキュメントはこちら Cross Site Request Forgery protection | Django documentation | Django csrf_token って? クロスサイトリクエストフォージェリ(CSRF) を防ぐためのモノです。 Django 1.2 から追加されました。 詳細については Ian さんトコで。 Django 1.2 の変更のまとめ - Ian Lewis 何に困るの? form で method="POST" 使うと以下のエラーページが表示される。 Forbidden (403
Django で CSRF 対策を行う手順を調べたのでメモを残しておきます! (今回は Django 1.2 を使用しました。 1.1から変更があるみたいですね) (本家のチュートリアルを終わらせたくらいの人(私です)を対象にしています) 手順は2ステップ! シンプルですね〜 POST を行うフォームで CSRF トークンを送信する POST 先のビューで CSRF トークンのチェックを行う 1.POST を行うフォームで CSRF トークンを送信する これはフォームに {% csrf_token %} を含めることで実現できます。 <form action="" method="post"> {% csrf_token %} ... </form> また、対応するビューで、 csrf_token が使用する変数を Context に設定する必要があります。 これを設定する方法は2つありま
CsrfMiddleware クラスは、簡単に使える クロスサイトリクエストフォージェリ 対策を提供しています。このタイプの攻撃は、悪意あるウェブサイトが、あなたの ウェブサイトに対して、ログイン済みユーザの権限で何らかの操作を行うように作 られたリンクやフォームボタンを自分のサイトに設置しておき、ログイン済みのユー ザがユーザが自分のブラウザを使ってボタンやリンクをクリックするように仕向け ることで起こります。 CSRF 攻撃に対する第一の防御は、 GET リクエストから副作用を取り除くというも のです。 POST リクエストに対する防御は、このミドルウェアをインストール済み ミドルウェアリストに追加して実現できます。 使い方¶ 'django.contrib.csrf.middleware.CsrfMiddleware' ミドルウェアを MIDDLEWARE_CLASSES に追加して
Caching websites with Django and Memcached... Published at July 12, 2011 | Tagged with: Python , speed , semantic web , Django , cache , Development , Technologies , Web ... memcached installation, django configuration and how to use it for your website After Caching web sites and web applications and When to use caching for web sites its time for a little sample. This sample shows the usage of Me
A lot of these steps will speed up any kind of application, not just django projects, but there are a few django specific things. Everything has been tested on IvyLees which is running in a Debian/Ubuntu environment. These three simple steps will speed up your server and allow it to handle more traffic. Reducing the Number of HTTP Requests Caching Using a lightweight front end server Reducing the
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く