Google Map API helper app for Djangoを使ってGoogle Mapsアプリを作ってみたいので、再度Djangoをチュートリアルからやってみます。
Google Map API helper app for Django
http://code.djangoproject.com/wiki/django-gmap
自宅内のLinux(Vine)サーバに現在に最新のDjango安定版をインストールします。
Djangoチュートリアル(前編)
http://codezine.jp/article/detail/4065
の内容をやりながら思い出します。
How to get Django
http://www.djangoproject.com/download/
より、Django-1.2.4.tar.gzをダウンロードしてインストール。
インストールされたことを確認します。
$ python Python 2.4.4 (#1, Apr 25 2008, 09:54:36) [GCC 3.3.6 release (Vine Linux 3.3.6-0vl7)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django.VERSION (1, 2, 4, 'final', 0)
Django-1.2.4は、Python 2.4系でも動作するとのことで、これで行きます。
任意の階層にてDjangoプロジェクトを作成します。
$ django-admin.py startproject gmap
必要なファイルが一式生成されます。
$ cd gmap/ $ ls __init__.py manage.py settings.py urls.py
開発サーバの起動し動作確認をします。
$ ./manage.py runserver -bash: ./manage.py: 許可がありません
「許可がありません」とエラーが出ます。
所有者の実行権限を加えます。
$ chmod u+x manage.py
再度、開発サーバの起動し動作確認をします。
$ ./manage.py runserver Validating models... 0 errors found Django version 1.2.4, using settings 'gmap.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
この状態で、家庭内の他のパソコンから、サーバの指定のポートにアクセスします。しかし、アクセスできません。
manage.py runserver にオプションとして、IPを指定しない (0.0.0.0 を使う)ことによって、ローカル以外からも接続可能になります。
再度、開発サーバの起動し動作確認をします。
$ ./manage.py runserver 0.0.0.0:8000 Validating models... 0 errors found Django version 1.2.4, using settings 'gmap.settings' Development server is running at http://0.0.0.0:8000/ Quit the server with CONTROL-C. [23/Dec/2010 03:32:22] "GET / HTTP/1.1" 200 2047
再度、ローカル以外でのパソコンでアクセスをすると
アクセス出来ました。
ここで作成したソースを一式 Subversionに登録しておきます。登録したソースをチェックアウトして再開。
setting.pyの編集(SQLiteを使う設定)
DATABASES = { 'default': { 'ENGINE': 'sqlite3', 'NAME': 'gmap.sqlite', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '', } } TIME_ZONE = 'Asia/Tokyo' LANGUAGE_CODE = 'ja'
DjangoプロジェクトのDB初期化をします。
$./manage.py syncdb Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_user_permissions Creating table auth_user_groups Creating table auth_user Creating table auth_message Creating table django_content_type Creating table django_session Creating table django_site You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (Leave blank to use 'hoge'): hoge E-mail address: hoge@gmail.com Password: Password (again): Superuser created successfully. Installing index for auth.Permission model Installing index for auth.Group_permissions model Installing index for auth.User_user_permissions model Installing index for auth.User_groups model Installing index for auth.Message model No fixtures found.
manage.pyからのDB接続をして内容の確認
$./manage.py dbshell SQLite version 3.3.6 Enter ".help" for instructions
実行したSQLの内容を参照できます。
sqlite> .dump BEGIN TRANSACTION; CREATE TABLE "auth_permission" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(50) NOT NULL, "content_type_id" integer NOT NULL, "codename" varchar(100) NOT NULL, UNIQUE ("content_type_id", "codename") ); INSERT INTO "auth_permission" VALUES(1, 'Can add permission', 1, 'add_permission'); INSERT INTO "auth_permission" VALUES(2, 'Can change permission', 1, 'change_permission'); INSERT INTO "auth_permission" VALUES(3, 'Can delete permission', 1, 'delete_permission'); INSERT INTO "auth_permission" VALUES(4, 'Can add group', 2, 'add_group'); INSERT INTO "auth_permission" VALUES(5, 'Can change group', 2, 'change_group'); INSERT INTO "auth_permission" VALUES(6, 'Can delete group', 2, 'delete_group'); INSERT INTO "auth_permission" VALUES(7, 'Can add user', 3, 'add_user'); INSERT INTO "auth_permission" VALUES(8, 'Can change user', 3, 'change_user'); INSERT INTO "auth_permission" VALUES(9, 'Can delete user', 3, 'delete_user'); INSERT INTO "auth_permission" VALUES(10, 'Can add message', 4, 'add_message'); INSERT INTO "auth_permission" VALUES(11, 'Can change message', 4, 'change_message'); INSERT INTO "auth_permission" VALUES(12, 'Can delete message', 4, 'delete_message'); INSERT INTO "auth_permission" VALUES(13, 'Can add content type', 5, 'add_contenttype'); INSERT INTO "auth_permission" VALUES(14, 'Can change content type', 5, 'change_contenttype'); INSERT INTO "auth_permission" VALUES(15, 'Can delete content type', 5, 'delete_contenttype'); INSERT INTO "auth_permission" VALUES(16, 'Can add session', 6, 'add_session'); INSERT INTO "auth_permission" VALUES(17, 'Can change session', 6, 'change_session'); INSERT INTO "auth_permission" VALUES(18, 'Can delete session', 6, 'delete_session'); INSERT INTO "auth_permission" VALUES(19, 'Can add site', 7, 'add_site'); INSERT INTO "auth_permission" VALUES(20, 'Can change site', 7, 'change_site'); INSERT INTO "auth_permission" VALUES(21, 'Can delete site', 7, 'delete_site'); CREATE TABLE "auth_group_permissions" ( "id" integer NOT NULL PRIMARY KEY, "group_id" integer NOT NULL, "permission_id" integer NOT NULL REFERENCES "auth_permission" ("id"), UNIQUE ("group_id", "permission_id") ); CREATE TABLE "auth_group" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(80) NOT NULL UNIQUE ); CREATE TABLE "auth_user_user_permissions" ( "id" integer NOT NULL PRIMARY KEY, "user_id" integer NOT NULL, "permission_id" integer NOT NULL REFERENCES "auth_permission" ("id"), UNIQUE ("user_id", "permission_id") ); CREATE TABLE "auth_user_groups" ( "id" integer NOT NULL PRIMARY KEY, "user_id" integer NOT NULL, "group_id" integer NOT NULL REFERENCES "auth_group" ("id"), UNIQUE ("user_id", "group_id") ); CREATE TABLE "auth_user" ( "id" integer NOT NULL PRIMARY KEY, "username" varchar(30) NOT NULL UNIQUE, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL, "email" varchar(75) NOT NULL, "password" varchar(128) NOT NULL, "is_staff" bool NOT NULL, "is_active" bool NOT NULL, "is_superuser" bool NOT NULL, "last_login" datetime NOT NULL, "date_joined" datetime NOT NULL ); INSERT INTO "auth_user" VALUES(1, 'hoge', '', '', 'hoge@gmail.com', 'sha1$**********************************', 1, 1, 1, '2010-12-23 19:39:45.831076', '2010-12-23 19:39:45.831076'); CREATE TABLE "auth_message" ( "id" integer NOT NULL PRIMARY KEY, "user_id" integer NOT NULL REFERENCES "auth_user" ("id"), "message" text NOT NULL ); CREATE TABLE "django_content_type" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "app_label" varchar(100) NOT NULL, "model" varchar(100) NOT NULL, UNIQUE ("app_label", "model") ); INSERT INTO "django_content_type" VALUES(1, 'permission', 'auth', 'permission'); INSERT INTO "django_content_type" VALUES(2, 'group', 'auth', 'group'); INSERT INTO "django_content_type" VALUES(3, 'user', 'auth', 'user'); INSERT INTO "django_content_type" VALUES(4, 'message', 'auth', 'message'); INSERT INTO "django_content_type" VALUES(5, 'content type', 'contenttypes', 'contenttype'); INSERT INTO "django_content_type" VALUES(6, 'session', 'sessions', 'session'); INSERT INTO "django_content_type" VALUES(7, 'site', 'sites', 'site'); CREATE TABLE "django_session" ( "session_key" varchar(40) NOT NULL PRIMARY KEY, "session_data" text NOT NULL, "expire_date" datetime NOT NULL ); CREATE TABLE "django_site" ( "id" integer NOT NULL PRIMARY KEY, "domain" varchar(100) NOT NULL, "name" varchar(50) NOT NULL ); INSERT INTO "django_site" VALUES(1, 'example.com', 'example.com'); CREATE INDEX "auth_permission_1bb8f392" ON "auth_permission" ("content_type_id"); CREATE INDEX "auth_group_permissions_425ae3c4" ON "auth_group_permissions" ("group_id"); CREATE INDEX "auth_group_permissions_1e014c8f" ON "auth_group_permissions" ("permission_id"); CREATE INDEX "auth_user_user_permissions_403f60f" ON "auth_user_user_permissions" ("user_id"); CREATE INDEX "auth_user_user_permissions_1e014c8f" ON "auth_user_user_permissions" ("permission_id"); CREATE INDEX "auth_user_groups_403f60f" ON "auth_user_groups" ("user_id"); CREATE INDEX "auth_user_groups_425ae3c4" ON "auth_user_groups" ("group_id"); CREATE INDEX "auth_message_403f60f" ON "auth_message" ("user_id"); COMMIT;
今日はここまで、次回へ続く
0 件のコメント:
コメントを投稿