LoginSignup
1
1

More than 5 years have passed since last update.

Django入門01(設定編)

Last updated at Posted at 2019-03-30

以下を参考に進めながら引っかかったところを追記する

Qiita:Django入門にはDjango Girls Tutorialがおすすめ

Djangoのチュートリアルをいろいろ探してみた結果、「Django Girls Tutorial」がとても良心的に感じました。Web開発の経験がない人でも一人で進められるのではと思うほどの丁寧さでした。

Django Girls Tutorial

環境作成

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を使う設定になっている。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

これを以下のように修正する。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '(接続するスキーマ名)',
        'USER': '(接続するユーザー名)',
        'PASSWORD': '(接続するユーザーのパスワード',
        'HOST': '(DBのホスト。IPアドレスかドメイン)',
        'PORT': '',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        }
    }
}

MySQL clientの設定

そのまま
python manage.py migrate
を実行すると

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

のエラーが出てしまう。

MySQL clientが必要なので
pip install PyMySQL
でPyMySQLをインストールする。
さらにmanage.pyに以下を追記することでMySQLdb moduleを有効化する。

import pymysql
pymysql.install_as_MySQLdb()
1
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1