views.pyでURLの逆引き リダイレクトの使い方などを紹介しましたが、直接URLを指定しても良いのですが、urls.pyの設定が変わった時に views.py も書き換えなければいけないのは正直しんどいと思います。 Djangoにはそういった悩みを解決するため、関数名から…
urls.pyは、URLのルーティングを定義します。いままでのサンプルコードでは、一つの関数でサンプルを作っていたので、あまり意識していませんでしたが、結構便利に使えます。 URLの定義方法 from django.conf.urls.defaults import * urlpatterns = patterns…
やっぱり遅い気がする。 コアな部分は、Cで書いたほうが良いんだろうか。
今日は、HttpRequestです。 POST/GETの判別 HTMLフォームから送信されたパラメータが、どのメソッドで送信されたかを調べるには、以下のようなコードになります。 def method_check(request): if request.method == 'POST': # POSTでパラメータを送ってきた…
render_to_response 散々使ってますが、一応紹介すると、テンプレートをレンダリングしてクライアントに結果を返すショートカット関数です。 render_to_response( 'template.html', {'key':'value',}, context_instance=RequestContext(request), mimetype='…
今日は手抜きで、HttpResponseのサブクラスを簡単に解説します。 HttpResponse いままでのサンプルコードで使っているのはこれでした。 ようは HTTP Status 200 OKを返すためのクラスです。このクラスに限らず、HttpResponseのサブクラスはテキストだけでは…
いままで何気なく views.py の中で使ってしまった render_to_response ですが、何をしているのかわからないまま使うのは良くないと思ったので、今回はこの関数を使わずに同じようなことをしてみたいと思います。まずは views.py の現状のコードを見てみます…
前回はタグを作りました。タグ関数でインスタンスを作った Node クラスのrenderでは、contextが渡されていました。この context は、view や template、そして tag の中と一連の処理の中で共通の値を保持するクラスです。Java(Servlet API)の中だと ServletC…
前回はフィルタを作ったので、今回はタグを作ってみたいと思います。 フィルタとタグの作り方は、かなり似ている。では、フィルタとタグの使い方から見た時に何が違うかと言うと、インプットの有無だと思う。フィルタは、テンプレート上の動的な値がありき。…
10日間継続を目指します。 ちゃんと目標は達成できそうなレベルじゃないとね。
Djangoのフィルタを自作するときには、Djangoのお作法に従ってファイルを配置します。 まずアプリケーションディレクトリの下に、"templatetags"というディレクトリを作成します。このディレクトリ名は決め打ちです。また、パッケージとして扱うのでディレク…
ViewからTemplateに値を渡して表示する方法がわかったら、次はその渡された値からHTMLを切り替えたり、列挙された値の取り出しをしてみます。まずは views.py を編集します。今回は色々な値を設定します。 # vim:fileencoding=utf-8 from django.shortcuts i…
ifを使って、Noneの値を出し分けたりしましたが、Noneのときにはデフォルト値(ゼロとか未選択を出したい!)を表示したい時には何となく冗長です。 そんなときには、フィルタを使うとスマートな表記ができます。前回の views.pyはそのまま利用して、htmlテ…
一度書いたのに間違って消してしまった。。。 昨日書いたコードを変更して、HTMLに動的な部分を埋め込むようにしてみます。まずは、views.pyを編集します。 from django.shortcuts import render_to_response def first(request): from datetime import date…
Django 開発初心者に送る 10 の Tips凄く基本的なところが抑えられています。 一度目を通して、後でもう一度見返すと良いとおもう。
プロジェクトとその中にアプリケーションを作ります。 django-admin.py startproject sample cd sample manage.py startapp app1 settings.pyを開いて INSTALLED_APPSにapp1を追加、TEMPLATE_DIRSにtemplate_dirを追加します。 TEMPLATE_DIRS = ( # Put stri…
前準備 駆け足にPythonの基礎的なことを書いたので、今日は Djangoに。 インストールとかは書くのが面倒なので、セットアップはここを参照してください。良く書かれていると思います。Djangoのアプリケーションを作るときには、まずはプロジェクトを作ります…
書き疲れてきたので、最後はTips。 文字列はシーケンス型となっているので、for文を使うと1字ずつの処理が簡単に書けます。 without_a = u'abcdefg' for ch in without_a: if ch != 'a': print 'not a'
Pythonのファイル操作は、ビルトイン関数を通じてファイルにアクセスします。 infile = open('input.txt', 'r') outfile = open('output.txt', 'w')Input/Outputで共通の関数ですが、2番目の引数が異なり、ここでモードを指定します。 ファイルを開いたあと…
ファイル操作の前に書くことがあった。 Pythonの null値は Noneという型で扱われています。 Javaだと面倒な nullチェックなどが、若干楽に書けるようになっています。 none_data = None if none_data: print u'Noneだと条件に当てはまらない' if not none_da…
三日目で燃え尽きたりして。 タプル Pythonにも、この言語ならではの型があります。 もっともよく使うものとしては、タプルがあげられます。 タプルとはIndexer付きのデータ格納形式です。ただ、配列と異なるのは、Pythonのシンタックスと組み合わせることで…
かれこれ半年(のうち3か月くらい)ほど、Python/Djangoで実戦をしていたので、しばらくは色々と書き残して行こうかと。 第一言語はJavaなので、ややこしいところとかJavaでこうしたかったときに、Pythonではこうするといった感じで書いていきます。 Python…
取れそうだ。 引越しとか本業とかで、まったく時間が取れなかった。 ここ半年くらいは、ずっとスクリプト言語(特にPython)をやっていたので、そろそろ覚えたことを吐き出しておかないと。脳みその奥深くに取り込まれる前に...(つまり忘れるということ...)
今更だけど広告業界にかなり近いところに最近まで所属していたので、まえに買ったものを読み返してみた。一時期に比べると半額以下の予算しかないとか、予算が無いとかが当たり前になっているらしい。 この特集の中に、20社分くらいの広告予算が出ていたけど…
復活。