2010/12/23

Google Map API helper app for Djangoを使ってみたいので、再度Djangoをチュートリアルからやってみます。その1



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 件のコメント:

人気の投稿 (過去 30 日間)