Python
Django
MySQL
nginx
uwsgi

Django + nginx + uwsgi でMySQLを使う

More than 1 year has passed since last update.

Django + nginx + uwsgi で動くアプリでMySQLを使うようにします。
Djangoチュートリアルに沿ってやります。

Django + nginx + uwsgi を動かすまではこちら。
https://qiita.com/lemmy/items/c0b2eac14096e8eb1614

Djangoのチュートリアル

https://docs.djangoproject.com/ja/1.11/intro/tutorial02/
Djangoのチュートリアルにそってmodels.pyをつくる。

完成したら、
python manage.py makemigrations polls
を実行する。

なにがしか変更点あった場合に認識してくれたり、
エラーがあるとおしえてくれたりする。

次に以下を実行すると、実行されるSQL文を吐いてくれる
python manage.py sqlmigrate polls 0001

そのなかに

CREATE TABLE `xxxxxx_xxxx_category` (`id` integer AUTO_INCREMENT NOT NULL 
PRIMARY KEY, `name` varchar(100) NOT NULL, `xxxx_category_id_id` integer NOT NULL);

xxxx_category_id_id ってなんやねん、と思ったが、
気にせずに

python manage.py migrate

してMySQLに入って

show columns from xxxxxx_xxxx_category
としたら

+-------------------+--------------+------+-----+---------+----------------+
| Field             | Type         | Null | Key | Default | Extra          |
+-------------------+--------------+------+-----+---------+----------------+
| id                | int(11)      | NO   | PRI | NULL    | auto_increment |
| name              | varchar(100) | NO   |     | NULL    |                |
| xxxx_category_id  | int(11)      | NO   | MUL | NULL    |                |
+-------------------+--------------+------+-----+---------+----------------+

となった。
どこかでALTER TABLEしてくれたのだろうか。。。

これでできたテーブルに対してadminモードを使うことができる。