February 24, 2021
←前回:Day 40 djangoをサーバにアップする
はじめに
「Djangoを一から学びたい」とのことでありましたら[Day 1]Djangoの開発環境から読むことをおすすめします。
この章を初めから閲覧したいことでありましたら、[Day 35]自分でweb開発を一から作ってみることにしたから読むことをおすすめします。
今日やったこと
・Sqlite3と接続
・MySQLと接続
・Prsgresと接続
・・・・
Sqlite3と接続
これはデフォで接続されているので確認だけです。
python manage.py migrate
で、OKがいっぱい出ればOKです
スーパーユーザの作成
python manage.py createsuperuser
ユーザ名、メール、パスワードを答えます。
最終確認をしては、webを実際開いてurlの末尾に/admin/とすれば確認できます。
MySQLと接続
プロジェクト直下に.envを作成し以下を書き込む
DATABASE_URL=mysql://root:password@localhost/pj_db
共通ライブラリのインストール
pip install dj-database-url
pip install python-dotenv
settings.pyの変更
もともとあるDATABASESの欄を削除して以下を追記
import dj_database_url
from dotenv import (
find_dotenv,
load_dotenv,
)
load_dotenv(find_dotenv())
DATABASES = {
'default': dj_database_url.config(conn_max_age=600),
}
MySQL用ライブラリのインストール
pip install mysqlclient
MySQL上にプロジェクト用データベースを作成
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
exit
mysql -u root -p
create database pj_db;
exit
python manage.py migrate
Sqlite同様OKが出ればOK
管理や画面の設定はSqlite3と同様です。
Prsgresと接続
Postgres用ライブラリのインストール
pip install psycopg2-binary
プロジェクト用のデータベースを作成
sudo -u postgres psql postgres
\password postgres
CREATE DATABASE pj_db;
\q
DATABASE_URL=postgres://postgres:password@localhost/pj_db
もともとあったものは先頭に#をつけてコメント化させる
python manage.py migrate
OKならOK
ここでも管理者画面の確認は上の二つと同様です。
Herokuで接続できているかの確認
requirements.txtを作成
django
gunicorn
whitenoise
dj-database-url
python-dotenv
psycopg2-binary
mysqlclient
Procfileを作成
web: gunicorn pj_db.wsgi
settings.pyの追記
MIDDLEWARE = [
...
'whitenoise.middleware.WhiteNoiseMiddleware',
]
・
・
・
DEBUG = False
・
・
・
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
いっきにログインします。
pip install -r requirements.txt
python manage.py collectstatic
あとはgitに保存します。(説明が面倒なので省略します)
git init
git add --all
git remote add origin <gitのurl>
git commit -m ''
#もしここでできなければメールアドレスrunさせて
git commit -m 'init'
git push origin master
Herokuでまたあれこれします。わからなければ前回のを参照してください
OverviewのMoreからRun consoleで
python manage.py migrate
python manage.py createsuperuser
で、確認できる
これを自動化させることもできるらしいので今度確認したいと思う
おわりに
そろそろ来年度の準備をしなくてはいけなくなってきました
いろいろ焦っています。
落ち着け自分