前回の記事
[Python]とにかくわかりやすく!Djangoでアプリ開発!ーその7ー
本記事の目的
python初心者の方が、本記事を見たあとに、一人でアプリ開発できることを目的にしております。
※インストールや開発環境については記載しません
環境
macOSX Sierra
python3.7
django 2.1.5
前回まで
だいぶ長くなってきたので、どのようなことをやってきたか詳細を割愛しますが、たくさんのことをしてきました。
フロントの話やDBの話はまだまだありますが、最低限の機能がついたものとして、公開をしてみたいと思います。
※今回herokuを使いますので事前にherokuのアカウント発行まではしておいてください。
絶対に必要なものをインストール
ここら辺はpipで用意します。
$ pip install dj-database-url gunicorn whitenoise
requirements.txtの用意
requirements.txtを用意して、書き込みを行います。
$ pip freeze > requirements.txt
中身はこんな感じです。
dj-database-url==0.5.0
Django==2.1.5
django-contrib-comments==1.8.0
gunicorn==19.9.0
psycopg2==2.7.5
whitenoise==4.0
そのほか必要なファイルの用意
Procfileとruntime.txtとlocal_setting.pyを用意しておきます。
web: gunicorn myapp.wsgi
python-3.6.6
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
DEBUG = True
最終的なtreeはこんな感じ
myapp
├── Procfile #ここ
├── db.sqlite3
├── app1
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── migrations
│ │ ├── 000x_auto_20190308_2248.py
│ │ └── __init__.py
│ ├── model.txt
│ ├── models.py
│ ├── static
│ │ └── kenko
│ │ └── css
│ │ └── style.css
│ ├── templates
│ │ └── kenko
│ │ ├── create.html
│ │ ├── delete.html
│ │ ├── edit.html
│ │ ├── find.html
│ │ └── index.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
├── myapp
│ ├── __init__.py
│ ├── local_settings.py #ここ
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── requirements.txt #ここ
└── runtime.txt #ここ
settings.pyの修正
settings.pyの最後に以下を追加
import dj_database_url
DATABASES['default'] = dj_database_url.config()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO','https')
ALLOWED_HOSTS = ['*']
STATIC_ROOT = 'staticfiles'
DEBUG = True
try:
from .local_settings import *
except ImportError:
pass
STATIC_DIRS = (
os.path.join(BASE_DIR, "static"),
)
herokuに送る
一応
$ git init
ログインしてアプリを作ります。
$ heroku login
$ heroku create アプリ名
remoteで接続します。
$ git remote add heroku https://git.heroku.com/アプリ名.git
あとはこんな感じで
$ git add -A
$ git commit -m "commit"
$ git push heroku master
https://<< herokuに登録したアプリ名>>.herokuapp.com
にアクセスしたらアプリは自分のPC以外からも見れるようになっています。
補足
デプロイ後にcssが読み込まれなかったので
最後のwhitenoiseを追加したら解決。当然修正のたびにherokuにpushが必要です。
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
]
参照
最後に
約1ヶ月程度をかけてその8まで投稿しました。再度勉強し直したところもありました。
誤字脱字の修正はこれから行います。
本当はバリデーションのこととかDBのこととかまだまだまだまだ内容はありますが、一旦ここで終わりにして、また余裕ができたときに追加をしていきます。
ここまで全部みられたかたがどこまでいらっしゃるかわかりませんが、ありがとうございます。