◆対象

Pythonをやりたい!
とりあえずメジャーなフレームワークで構築してみよう
Djangoで構築

という方の手順を記録してみました。

 

■Pythonの動作確認

$ python3 --version
Python 3.5.2

動作が確認取れない場合はPythonをインストールする

 

◆仮想環境構築

 

以下で仮想環境を構築する
仮想環境には virtualenv、venv がありますが、
virtualenv がデファクトスタンダードらしいです。


venvは、virtualenvみたいな機能を標準でもサポートしようぜ!
ということでPython3.3から追加された標準モジュールのようです。


下記では、venv で作成しています。

 

■ディレクトリの作成

まず、仮想環境を作成したいディレクトリまで移動します
$ mkdir sample_app
$ cd sample_app

 

■仮想環境を作成する

$ python3 -m venv myvenv

 

■ディレクトリが作成されたことを確認

$ ls
myvenv

 

■treeにより作成されたディレクトリ内容を確認してみる

treeをインストールしていない場合はインストールする
$ brew install tree

treeによるディレクトリ内容を確認
$ tree -L 1 myvenv
myvenv
  ├── bin
  ├── include
  ├── lib
  └── pyvenv.cfg

 

■Djangoインストール

myvenv user$ pip3 install Django==1.11.5

 

◆プロジェクト作成

 

■現在位置の確認

$ pwd
/Users/#{myname}/Desktop/sample_app/myapp
$ tree -L 1 .
.
├── bin
├── include
├── lib
└── pyvenv.cfg

 

■プロジェクトを作成する

$ django-admin startproject myapp .
$ ls
bin  lib  myapp
include  manage.py pyvenv.cfg
$ tree -L 1 .
.
├── bin
├── include
├── lib
├── manage.py
├── myapp
└── pyvenv.cfg

 

■設定ファイル内のタイムゾーンを変更する

Vimを使って編集してみました
$ cd myapp
$ vim settings.py


以下の内容に変更します

```
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'

USE_I18N = True

USE_L10N = True

# USE_TZ = True
USE_TZ = False
```

 

■データベースの設定

SQLiteを使用する場合は myapp/settings.py の中に以下が記載されています。
MySQL、PostgreSQLを使う場合は応じて変更が必要

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

 

■DBのマイグレーション

SQLite3動作確認(macには予めインストールされている)
$ sqlite3 -version


マイグレーションの実行
$ ls
bin  lib  myapp
include  manage.py pyvenv.cfg
$ source ./bin/activate
$ python manage.py migrate
$ python3 manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying sessions.0001_initial... OK


 

◆動作確認

 

■サーバ起動

$ python manage.py runserver
$ python3 manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

September 22, 2017 - 15:22:03
Django version 1.11.5, using settings 'myapp.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

 

■動作確認

下記にアクセスします。
http://127.0.0.1:8000/


参考
https://qiita.com/yoshizaki_kkgk/items/f3c79e38b802c7fc8863
https://qiita.com/maskedw/items/aaa2fd7abfd493cf2820
https://teratail.com/questions/64846
https://teratail.com/questions/82246

 

■次回記事

【Django入門】Mac環境にDjangoを導入する2(アプリケーション作成)

 

参考

https://shige-mon.blogspot.com/2017/09/django-install.html