Django入門(1)ということで、まずは設定から始める。
以下を参考に進めながら引っかかったところについて書いておく。
Qiita:Django入門にはDjango Girls Tutorialがおすすめ
Djangoのチュートリアルをいろいろ探してみた結果、「Django Girls Tutorial」がとても良心的に感じました。Web開発の経験がない人でも一人で進められるのではと思うほどの丁寧さでした。
環境作成
Anacondaを使うのであれば
Environments -> Create
で環境作成して、必要なものをpipでインストールすれば良い。
以降ターミナル(というかコマンドプロンプト)を起動する際は、Djangoの環境の「▶」から
open terminal
をクリックすればターミナルが開く。
DB設定
migrateでテーブル作成されるので、アプリ用のユーザーを作成し、アプリが使うスキーマに対して権限を与え、参照するだけのスキーマにはselect権限のみ付与する。
MySQL Workbenchを使う場合は
Navigator(左サイドバー)-> Users and Privileges
でユーザー作成画面を開き、
add account
でユーザー作成。
Schema Privileges
から権限設定。
settings
Djangoのプロジェクトを作成後、MySQLを利用する為にsettings.pyを編集する。
まずデフォルトは以下のようにsqlite3を使う設定になっている。
[python title="settings"]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
[/python]
これを以下のように修正する。
[python title="settings"]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '(接続するスキーマ名)',
'USER': '(接続するユーザー名)',
'PASSWORD': '(接続するユーザーのパスワード',
'HOST': '(DBのホスト。IPアドレスかドメイン)',
'PORT': '',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
}
}
}
[/python]
MySQL clientの設定
そのまま
python manage.py migrate
を実行すると
[code lang=text]
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
[/code]
のエラーが出てしまう。
MySQL clientが必要なので
pip install PyMySQL
でPyMySQLをインストールする。
さらにmanage.pyに以下を追記することでMySQLdb moduleを有効化する。
[python]
import pymysql
pymysql.install_as_MySQLdb()
[/python]