2007-03-05 (月) [長年日記]
■ [Django][Python] "[Django-01] Djangoとは" をやってみる。
『
最新Pythonエクスプローラ Django,TurboGears,Twisted,IronPython 完全攻略(Software Design 編集部)』に載ってたやつをやってみる。
djangoのインストール
# apt-get install python-django
プロジェクトの作成
$ cd ~/work $ django-admin startproject djbookshelf
アプリケーションの作成
$ cd djbookshelf $ ./manage.py startapp shelf
モデルの記述
クラスと属性の設定
$ emacs models.py
グローバルな設定
DB、タイムゾーン、言語の設定とINSTALLED_APPSの設定。
$ emacs ../settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'djbookshelf.self', # これ追加
)
テーブル作成
モデルからテーブルを作ってくれる。
$ ./manage.py syncdb
エラったのでライブラリ追加
# apt-get install python-psycop
もっかいテーブル作成
$ ./manage.py syncdb
コンソールで確認してみる
まあ普通。
$ ./manage.py shell
サーバ起動
$ ./manage.py runserver 0.0.0.0:8000
Welcomeページは見れた。
で、次から迷子になった。
- urls.pyのadmin用のコメントアウトを外した。
- で、リロードすると「Page no found」。ここまでは書いてある。
- 次に/adminにアクセス。管理画面がでるそうな。でねーーー。
- 「管理インターフェースを利用する」のところに書いてあるやつを設定しなきゃいけないのかー。これは書くところが悪い気がする。
- settings.pyのINSTALLED_APPSに「django.contrib.admin」追加
- ./manage.py syncdb を再実行
あ、でた。
BookにインナークラスAdminを追加
きもーい。
テンプレート記述
$ mkdir -p ~/work/djbookshelf/shelf/templates/shelf/ $ cd ~/work/djbookshelf/shelf/templates/shelf/ $ touch book_list.html $ emacs book_list.html
テンプレートは普通に書く。{%...%}って大丈夫?変えられる?
テンプレートの設定
urls.pyの編集
from djbookshelf.shelf.models import Book
urlpatterns = patterns('',
(r'^djbookshelf/$',
'django.views.generic.list_detail.object_list',
{'queryset': Book.objects.all(), 'paginate_by': 2}
),)
えーー変数を渡すモデルなのーーー???
まあ、とりあえずここまで。
■ [tDiary] dp.SyntaxHighlighterを使って色づけする
かずひこさんが書いてたのでためしてみた。hikidoc.rbを以下のように変更します。
begin
raise if $1.empty?
multi_pre_syntax_type = $1.downcase.untaint
converted_text = restore_pre($2)
pre_format = %Q|<textarea name="code" class="#{multi_pre_syntax_type}" cols="100" rows="5">%s</textarea>|
"\n" + store_block( pre_format % converted_text ) + "\n\n"
rescue
こんな感じになります。
JSファイルを節操なく読み込むのがイヤだなあ。
VimColorもいいなーとは思ったんだけど。

うちは VimColor の異常なまでの対応フォーマット数に惚れて VimColor にしてしまいました。というか、Perl は変態的なので syntax も dp.SyntaxHighlighter も対応してないという。<br><br># はてな記法なのではてなの実装に近づけたかったというところもありますが