モデルを有効にする
$ cd boyoyon
$ vi settings.py
ってやってsettings.pyを編集。
INSTALLED_APPSって書いてあるところにモデルを追加。
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
)
ってなってるんで、そこにboyoyon.apppppを追加。
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'boyoyon.appppp',
)
これで有効になったかしら。
ということで以下のコマンドを実行。
$ python manage.py sql appppp
すると、、、
Error: Django doesn't know which syntax to use for your SQL statements,
because you haven't specified the DATABASE_ENGINE setting.
Edit your settings file and change DATABASE_ENGINE to something like 'postgresql' or 'mysql'.
って言われた。
DATABASEの設定しないとダメみたい。
早速DBの設定。
settings.pyをひらいて、、、
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = '' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
ってところを環境に合わせて設定。
自分の環境は以下の感じ。
DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'test' # Or path to database file if using sqlite3.
DATABASE_USER = 'root' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = 'localhost' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '3306' # Set to empty string for default. Not used with sqlite3.
特にmysqlが好きなわけじゃないけどmysqlを指定。
databaseは'test'、ユーザはroot、パスワードなし。
んで、再度sql出力コマンド。
$ python manage.py sql appppp
BEGIN;
CREATE TABLE `appppp_poll` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`question` varchar(200) NOT NULL,
`pub_date` datetime NOT NULL
)
;
CREATE TABLE `appppp_choice` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`poll_id` integer NOT NULL,
`choice` varchar(200) NOT NULL,
`votes` integer NOT NULL
)
;
ALTER TABLE `appppp_choice` ADD CONSTRAINT poll_id_refs_id_9963a93 FOREIGN KEY (`poll_id`) REFERENCES `appppp_poll` (`id`);
COMMIT;
おお、SQL文が出力された。。。
idはauto_increment。これ変えたい場合は
なんたらFieldのパラメータにprimary_key=Trueを指定すればいいらしい。
さて、次は実際にDBにテーブルを作る。
syncdbというコマンドを叩くらしい。
$ python manage.py syncdb
Creating table auth_permission
Creating table auth_group
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table appppp_poll
Creating table appppp_choice
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 'konno'):
E-mail address: atkonn@gmail.com
Password:
Password (again):
Error: Blank passwords aren't allowed.
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Permission model
Installing index for auth.Message model
Installing index for appppp.Choice model
途中パスワードで怒られた。空パスワードはダメみたい。
どれ、テーブルできたかな。
$ mysql -uroot test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 231
Server version: 5.0.51a-24+lenny4 (Debian)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
> show tables;
+----------------------------+
| Tables_in_test |
+----------------------------+
| appppp_choice |
| appppp_poll |
| auth_group |
| auth_group_permissions |
| auth_message |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_content_type |
| django_session |
| django_site |
+----------------------------+
っと。
もりっとできた。
次はデータベースAPIと戯れるとのこと。
.