Djangoで動的な複数のOR検索を実装する方法

2011-06-28
このエントリーをはてなブックマークに追加

ORの数が決まっているならどうって事ないのですが、例えば複数キーワードを入力できるコンテンツ検索機能などを実装しようとすると意外と難しかったりします。

from django.db.models import Q
def search(request):

_words = (u’キーワードその位置1’, u’キーワードその位置2’)

queries = [Q(title__contains=word) for word in _words]
query = queries.pop()
for item in queries:

query |= item

_list = Entry.objects.filter(query)

キーワードのリストは検索フォームからPOSTされたものとしてください。個数は可変です。Entryというモデルに含まれるtitleというフィールドからの検索です。検索ワードが含まれるデータを検索しています。

で、ORでクエリをつないでいって、最後に検索しています。

Django1.2.3で実装、動作していますが、Qオブジェクトが使えるバージョンならどれでも動くと思います。

Tags: ,

おやつに最適な「メープルシロップくるみ」

2011-06-27
このエントリーをはてなブックマークに追加

ハセテツは基本的にお昼ごはんは食べません。お昼ごはん食べに行く時間、食べてる時間、戻ってきてから頭を仕事に切り替える時間、合計2時間くらい消費してしまい、仕事の遅いハセテツには取り戻せないからです。

まぁ「ご飯食べる時間もないんだ」って自分を追い込んでハッパかけてるっていうのもあると思いますが。

そんな生活をもう何年も続けているのでお腹はそんなに空かないのですが、やっぱり口さみしくなったりするんですよね。そんな時にちょうどいいおやつを見つけたのです。

抜群。w

MacOSXでPHPの開発環境を構築する

2011-06-15
このエントリーをはてなブックマークに追加

MacOSX、SnowLeopardでのお話です。

WindowsでPHP使って開発してたときはApacheのインストールからやってましたが、MacOSXの場合はApacheはインストール済み、PHPもインストール済みでして、それらを「有効」にしてあげるだけですぐに使えます。

まぁ、そこをあえてソースからコンパイルしたい人とかもいるかもしれませんが、今回はそういうケースではなく、バンドルされているものをそのまま使う方法です。

まず、Apacheを使えるようにする

「システム環境設定」→「共有」→「Web共有」にチェックを入れるだけです。いれたあと、ブラウザを開いて「http://localhost/」を開いてみると、「It works.」と表示されていると思います。これでApacheは起動しました。

Apacheの再起動は

sudo apachectl restart

でOK。設定ファイルは「/etc/apache2/httpd.conf」にあります。編集するときは

sudo vi /etc/apache2/httpd.conf

で開いてください。

コンテンツを置く場所、DocumentRootはデフォルトでは「/Library/WebServer/Documents」の中になっているはずです。

 

PHPモジュールを読み込むように設定する

つぎはPHPの設定です。httpd.confを開いて、116行目あたり。PHPモジュールの読み込みがコメントアウトされていると思います。そこの#を消してあげてください。

#LoadModule php5_module        libexec/apache2/libphp5.so
↑この#を消す。

さらに、

<IfModule mod_php5.c>
AddType application/x-httpd-php .php
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>

を追記。場所はどこでいいのだとは思いますが、273行目あたりからモジュールの設定等が続くので、ハセテツはそのへんに書きました。

保存して閉じたらApacheの再起動。動作の確認に恒例のphpinfoでも書きましょう。

 

最近PHPがdisられているのを目にすることがたまにあるのですが、僕個人はPHP好きです。あの手軽さはいいですよね。PHPを否定する人の大半って、「マジョリティを否定することでちょっと俺はそのへんの連中と違うぜへへん」って、マイノリティ気取ってるだけちゃうんかなと。

ただ、PHPerにはとりあえずコーディングできるだけ、っていうひとが多いのも事実で、セキュリティもなんも考慮されていない、どうしようもなくスパゲッティになっているコードがあるのも事実です。それでPHPが悪く観られたりもしてんのかなと。けど、そんなのPHPが悪いわけじゃないしね。Javaで全部のロジックがJSPに記述されてるアプリケーションとかもあったよ。けっこう有名な会社だったけど。

まぁ、なにが言いたいかって、改善を伴わない否定は無駄なのでやる意味なし。そんなヒマあったらスキルアップに時間を費やしましょう、ってことでした。

 

Tags: ,