この記事はPHP Advent Calendarの19日目の記事です。 プログラマ10人集まれば、誰かMVCうんちく語るのが常。みんな大好きMVCの話です。僕は今年でPHPプログラマとして10年が経過しました。この節目の年に、これまで触ってきたフレームワークを振り返り、徹底的な個人的主観でMVCについて語っていきたい思います。忘年会シーズンでお疲れの皆様、ご安心ください。コード・ゼロでお届けします。 いろんな言語のいろんなフレームワークを触ってきたつもりですが、Javaはやってなかったんであまり詳しくないです。主にRails以降のフレームワークを見ていきます。 Railsの功績 PHPプログラマとしてRailsの登場で何にびっくりしたかというと、次の三つです。 router ActiveRecord cliと対話型shell ActiveRecordは魔法のように見えましたが、いずれ出ても
I have a Django my_forms.py like this: class CarSearchForm(forms.Form): # lots of fields like this bodystyle = forms.ChoiceField(choices=bodystyle_choices()) Each choice is e.g. ("Saloon", "Saloon (15 cars)"). So the choices are computed by this function. def bodystyle_choices(): return [(bodystyle.bodystyle_name, '%s (%s cars)' % (bodystyle.bodystyle_name, bodystyle.car_set.count())) for bodystyl
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message 岩下と申します。 auth.models.User を拡張したい(ユーザーのパラメータを増やしたい)場合、 1) プロフィールモデルを定義して使う (User.get_profile() が使える状態にする) 2) auth.models.User を継承する の2つの方法があるかと思いますが、どちらの方法を使うべきなのか、悩んでます。 自分ではどう考えても答えが出ないので、皆さんにお尋ねしたいと思います。 今分かっていることを書き連ねてみます。 ・django1.0以前は、そもそもモデルの継承が出来なかったので、1) し
和訳について このドキュメントは、 Django の標準ドキュメント の和訳です。現在、和 訳は Yasushi Masuda によって進められており、 Takanao Endoh をはじめとす る日本 Django ユーザ会の有志の手でメンテナンスされています。和訳に関す る問い合わせは、 Django プロジェクトのトラッカではなく 、 Yasushi Masuda (whosaysni-at-gmail.com) または django-ja メーリングリストにお寄 せください。 助けを求める¶ 困り事ですか?手を貸しましょう! FAQ を探しましょう。よくある質問への答えなら、ここで見 つかります。 特定のトピックについて情報を探しているなら、 索引 や モジュール索引 、 Django ドキュメント 目次 を見てください。 django-users メーリングリストのアーカイブ を
Buyer Protection Program When you buy a domain name at Dan.com, you’re automatically covered by our unique Buyer Protection Program. Read more about how we keep you safe on our Trust and Security page. Next to our secure domain ownership transfer process, we strictly monitor all transactions. If anything looks weird, we take immediate action. And if the seller doesn't deliver on their part of the
DjangoのURLディスパッチャは正引き(URLからview関数への変換)は比較的単純ですが、逆引き(view関数からURLへの変換)はちょっとわかりにくいです。get_absolute_urlメソッド, permalinkデコレータ, urlタグ, reverse関数, url関数, 名前付きURLパターンなど、キーワードはよく目にするけれど、具体的にどうすればいいのかよくわからないということはないでしょうか? Djangoのドキュメントでは正引き・逆引きという視点からのまとまった解説はないので、ここで解説したいと思います。 正引き(URLからview関数への変換) 正引きと言うのはURLからview関数への変換のことです。urls.pyに正規表現とそれに対応するview関数名の組(URLパターン)を定義することで実現しています。その目的のためだけならURLパターンに名前をつける必要は
The University of Pennsylvania’s Wharton School is one of the most renowned business programs in the country. It’s Alfred West Jr. Learning Lab (WLL) acts as the leading edge of the school’s groundbreaking legacy by developing digital platforms to enhance … At Lincoln Loop, we don’t just build web platforms from scratch and scale them to accommodate growing demand; we also dedicate ourselves to th
Matters of interest, from the News Applications team at the Chicago Tribune At some point during the course of developing the Elections Center it became clear to me that each of us was spending too much development time trying to understand one another’s code. Sometimes this was because our intuitions about the right way to do things were different, other times it was a difference of priorities, b
Webアプリケーションのログインの際によく「ログイン状態を保持する」(セッションCookieの有効期限をブラウザ終了時までではなく一定期間に指定する)という選択肢を設けることがある。Djangoの標準の認証機構ではそういったことができないなーと思っていて、でも、Pinaxにはあるだろうと考えたら、やっぱりあった。pinaxのlocal_apps/accountを使えばよさげ。以下は、pinax/local_apps/account/forms.pyからの抜粋。 class LoginForm(forms.Form): username = forms.CharField(label=_("Username"), max_length=30, widget=forms.TextInput()) password = forms.CharField(label=_("Password"), w
django標準のログインフォーム(確かAuthenticationForm)ではブラウザをとじたあともログイン状態を保持するかを選択できません。実際のサイト構築ではこの機能が必須になってくるかと思います。 スコトプリゴニエフスク通信さんを参考にしました。 pinaxというdjangoをベースにしたフレームワーク?のコードが引用されています。 私の場合、ログインにusernameを使わず、emailで行っているので強引に工夫します(usernameはプレースホルダが書きこまれています) forms.py class LoginForm(forms.Form): email = forms.EmailField(label=_("Email"), max_length=30) password = forms.CharField(label=_("Password"), widget=for
古いけど、これまたいい内容なので勝手に翻訳します。誤訳があれば是非ご指摘を。 しかもスライド資料の翻訳なので、流れがわかりづらい場合は是非、元動画を見ながらどうぞ。 DjangoCon 2008 Reusable Apps http://www.youtube.com/watch?v=A-S0tqpPga4 PDF http://media.b-list.org/presentations/2008/pycon/reusable_apps.pdf 4つの道筋 ひとつのことをうまくやれ 複数アプリにすることを恐れるな 柔軟さを考慮して作れ 配布のことを考えて作れ その1 「ひとつのことをうまくやれ」 -- UNIX 哲学 アプリケーション == カプセル化 ケーススタディ:ユーザー登録 仕様 ユーザーがフォームから登録すると有効化されていないアカウントが作成される ユーザーがリンクを記載した
Django Compressor¶ Compresses linked and inline JavaScript or CSS into a single cached file. Why another static file combiner for Django?¶ Short version: None of them did exactly what I needed. Long version: JS/CSS belong in the templates Every static combiner for Django I’ve seen makes you configure your static files in your settings.py. While that works, it doesn’t make sense. Static files are f
DjangoのORMがどんなSQLを実行しているか、ずっと気になっていたのですが、ようやく、トレースを表示する方法が分かりました。 settings.pyで DEBUGをTrueにする INTERNAL_IPSにデバッグ・コンテクスト・プロセッサを有効にするアドレスを設定 コンテクスト・プロセッサにdjango.core.context_processors.debugを追加 これでOK。具体的には、settings.pyに次のように記述します。 # settings.py DEBUG = True INTERNAL_IPS = ('127.0.0.1', ) TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.debug', ) 後は、テンプレートの適当な場所に、 {{ sql_queries }} という、テン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く