Django × PostgreSQL × AWS

環境

  • macOS 10.12.6
  • Python 3.6.1
  • Django 1.11.5
  • PostgreSQL 9.6.5
  • AWS EC2

Django環境構築

$ python3 -m venv venvname  #仮想環境作成

$ . venvname/bin/activate  #仮想環境の有効化

(venvname) $ pip install Django==1.11.5  #Djangoインストール

(venvname) $ python -m django –version  #Djangoバージョン確認

PostgreSQL環境構築

$ brew install postgresql  #PostgreSQLインストール

$ psql –version  #PostgreSQLバージョン確認

brew services start postgresql  #PostgreSQLの起動

createdb dbname  #DB作成

$ psql -l  #DB一覧確認

psql dbname -c “create user username with password ‘password‘”  #ユーザー作成

psql -U username dbname  #DBに接続(Uオプションをつけないとログインユーザー)

(venvname) $ pip install psycopg2  #PostgreSQLドライバをインストール

(venvname) $ python manage.py makemigrations  #マイグレーションファイルの作成

(venvname) $ python manage.py migrate  #マイグレーション実行

settings.py
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.postgresql_psycopg2’,
‘NAME’: ‘dbname‘,
‘USER’: ‘username‘,
‘PASSWORD’: ”,
‘HOST’: ‘localhost’,
‘PORT’: ”,
}
}

AWS EC2

[root@project_name]# gunicorn proj_name.wsgi:application -D  #manage.pyのある場所でDjangoデーモン起動

SeleniumとヘッドレスChromeのセットアップ

# Seleniumのインストール
$ pip install selenium 

# Chromeのインストール
$ curl https://intoli.com/install-google-chrome.sh |
$ google-chrome-stable -version
Google Chrome 68.0.3440.106

# Chrome Driverのインストール (Chromeのバージョンと対応するドライバーのバージョン確認はこちら)
$ wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.unzip
$ chromedriver_linux64.zip
$ mv chromedriver /usr/local/bin/
$ chromedriver -v
ChromeDriver 2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706)

# Python 以下赤字を入れないとエラーになる
>>> from selenium import webdriver
>>> from selenium.webdriver.chrome.options import Options
>>>
>>> options = Options()
>>> options.add_argument(‘–headless’)
>>> options.add_argument(‘–no-sandbox’)
>>> options.add_argument(‘–disable-dev-shm-usage’)
>>>
>>> driver = webdriver.Chrome(chrome_options=options)