とりあえず admin は動いた
のですがこれからどうしよう。とりあえず晩メシの買い出しに行って帰宅。
ええと、DB 見てみる。
$ sqlite3 rss.db '.tables' auth_group django_site auth_group_permissions feedjack_feed auth_message feedjack_link auth_permission feedjack_post auth_user feedjack_post_tags auth_user_groups feedjack_site auth_user_user_permissions feedjack_site_links django_admin_log feedjack_subscriber django_content_type feedjack_tag django_session $
feedjack_* な定義は控えとこ。
$ sqlite3 rss.db '.schema feedjack_feed' CREATE TABLE "feedjack_feed" ( "id" integer NOT NULL PRIMARY KEY, "feed_url" varchar(200) NOT NULL UNIQUE, "name" varchar(100) NOT NULL, "shortname" varchar(50) NOT NULL, "is_active" bool NOT NULL, "title" varchar(200) NOT NULL, "tagline" text NOT NULL, "link" varchar(200) NOT NULL, "etag" varchar(50) NOT NULL, "last_modified" datetime NULL, "last_checked" datetime NULL ); $ sqlite3 rss.db '.schema feedjack_link' CREATE TABLE "feedjack_link" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL UNIQUE, "link" varchar(200) NOT NULL ); $ sqlite3 rss.db '.schema feedjack_post' CREATE TABLE "feedjack_post" ( "id" integer NOT NULL PRIMARY KEY, "feed_id" integer NOT NULL REFERENCES "feedjack_feed" ("id"), "title" varchar(255) NOT NULL, "link" varchar(200) NOT NULL, "content" text NOT NULL, "date_modified" datetime NULL, "guid" varchar(200) NOT NULL, "author" varchar(50) NOT NULL, "author_email" varchar(75) NOT NULL, "comments" varchar(200) NOT NULL, "date_created" date NOT NULL, UNIQUE ("feed_id", "guid") ); CREATE INDEX "feedjack_post_feed_id" ON "feedjack_post" ("feed_id"); CREATE INDEX "feedjack_post_guid" ON "feedjack_post" ("guid"); $ sqlite3 rss.db '.schema feedjack_post_tags' CREATE TABLE "feedjack_post_tags" ( "id" integer NOT NULL PRIMARY KEY, "post_id" integer NOT NULL REFERENCES "feedjack_post" ("id"), "tag_id" integer NOT NULL REFERENCES "feedjack_tag" ("id"), UNIQUE ("post_id", "tag_id") ); $ sqlite3 rss.db '.schema feedjack_site' CREATE TABLE "feedjack_site" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "url" varchar(100) NOT NULL UNIQUE, "title" varchar(200) NOT NULL, "description" text NOT NULL, "welcome" text NULL, "greets" text NULL, "default_site" bool NOT NULL, "posts_per_page" integer NOT NULL, "order_posts_by" integer NOT NULL, "tagcloud_levels" integer NOT NULL, "show_tagcloud" bool NOT NULL, "use_internal_cache" bool NOT NULL, "cache_duration" integer NOT NULL, "template" varchar(100) NULL ); $ sqlite3 rss.db '.schema feedjack_site_links' CREATE TABLE "feedjack_site_links" ( "id" integer NOT NULL PRIMARY KEY, "site_id" integer NOT NULL REFERENCES "feedjack_site" ("id"), "link_id" integer NOT NULL REFERENCES "feedjack_link" ("id"), UNIQUE ("site_id", "link_id") ); $ sqlite3 rss.db '.schema feedjack_subscriber' CREATE TABLE "feedjack_subscriber" ( "id" integer NOT NULL PRIMARY KEY, "site_id" integer NOT NULL REFERENCES "feedjack_site" ("id"), "feed_id" integer NOT NULL REFERENCES "feedjack_feed" ("id"), "name" varchar(100) NULL, "shortname" varchar(50) NULL, "is_active" bool NOT NULL, UNIQUE ("site_id", "feed_id") ); CREATE INDEX "feedjack_subscriber_feed_id" ON "feedjack_subscriber" ("feed_id"); CREATE INDEX "feedjack_subscriber_site_id" ON "feedjack_subscriber" ("site_id"); $ sqlite3 rss.db '.schema feedjack_tag' CREATE TABLE "feedjack_tag" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(50) NOT NULL UNIQUE ); $
つい、scheme って打ってしまう。しかしこの id 式って関係が一目瞭然で良い。とりあえず列挙しておく事に。
- post と feed は 1:n
- post と tag は n:n
- site と link は n:n
- subscriber と site は 1:n
- subscriber と feed が 1:n
よく分かんねい、と言いつつ feedjack なドキュメント見てみたら urls.py を以下にしてみれ、とある。
# Uncomment this for admin: (r'^admin/', include('django.contrib.admin.urls')), (r'', include('feedjack.urls')),
で、http://localhost:8000/ にアクセスしたら CSS スルーな微妙コンテンツが出力。スタイルの指定は以下なカンジ
<link rel="stylesheet" type="text/css" href="/feedjack/default/style.css" />
これが MEDIA_URL 云々ッスか。こんな感じで良いのかな
MEDIA_URL = '/usr/lib/python2.4/site-packages/Feedjack-0.9.12-py2.4.egg/feedjack/static/'
違う。こうか。
MEDIA_ROOT = '/usr/lib/python2.4/site-packages/Feedjack-0.9.12-py2.4.egg/' # URL that handles the media served from MEDIA_ROOT. # Example: "http://media.lawrence.com" MEDIA_URL = 'feedjack/static/'
NG。ログによると以下
[10/May/2008 17:34:51] "GET / HTTP/1.1" 200 2418 [10/May/2008 17:34:52] "GET /feedjack/static//feedjack/default/style.css HTTP/1.1" 404 3179 [10/May/2008 17:34:52] "GET /feedjack/static//feedjack/default/img/button-rss.png HTTP/1.1" 404 3206 [10/May/2008 17:34:52] "GET /feedjack/static//feedjack/default/img/button-hacker.png HTTP/1.1" 404 3215 [10/May/2008 17:34:52] "GET /feedjack/static//feedjack/default/img/button-atom.png HTTP/1.1" 404 3209 [10/May/2008 17:34:52] "GET /feedjack/static//feedjack/default/img/button-opml.png HTTP/1.1" 404 3209 [10/May/2008 17:34:52] "GET /feedjack/static//feedjack/default/img/button-foaf.png HTTP/1.1" 404 3209
うう。色々ヤッてるんですが駄目ですねぇ。で、setting.py なドキュメント見てみるに確かにこれでは駄目ですわ。
ええと、とりあえず apache から可視範囲にないと駄目なのか??
って、よく考えたら apache 経由じゃないし (駄目
メシ食った
面倒臭いので apache + mod_python で起動するナニにする事に。ええと、mod_python で Django を動かすによれば設定なナニのサンプルが以下
<Location "/mysite/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonDebug On </Location>
との事なんですが、DJANGO_SETTINGS_MODULE に指定するナニが微妙。あと settings.py も試行錯誤が必要そげ。こんな感じで動くの?
考えてても仕方が無いので /etc/apache2/conf.d/rssreader として
<Location "/mysite/"> SetHandler python-program PythonHandler django.core.handlers.modpython PythonPath "['/home/guest/rssreader'] + sys.path" SetEnv DJANGO_SETTINGS_MODULE rssreader.settings PythonDebug On </Location>
を追加。これで apache2 起動して http://localhost/mysite/ にアクセスしたらどうなるんだろうか。