部屬Django 到 Heroku
Create Heroku Application
Register Your Heroku
in your dashbroad create new app
![]()
and give your app
- app name(can not use Big alphabet)
- region
Install Heroku CLI
Install PostgreSQL
Why we should install PostgreSQL
why we cannot use sqlite3
Because Heroku not supported sqlite
add-ons
![]()
Create python virtual env
1 2 3 4 5
| pip install virtualenv D: virtualenv linebot cd linebot Scripts\activate
|
install pip module
1 2 3 4 5 6
| pip install django pip install dj-database-url //heroku處理DB pip insyall dj-static //heroku處理靜態檔案 pip install gunicorn //heroku伺服器輔助模組 pip install psycopg2 pip install requests
|
show virtualenv module
create requirements.txt
create it in mysite folder
1 2
| cd mysite pip freeze >requirements.txt
|
create Procfile
create a “Procfile” in project folder and type the followings command in “Procfile”
1
| web: gunicorn --pythonpath mysite mysite.wsgi
|
web is meaning to open webapp
gunicorn –pythonpath mysite mysite.wsgi will according mysite folder urls.py setting to setup default page
Create runtime.txt
this file is tell heroku which version of python we use(! that version must heroku supported)
Create prod_settings.py
1 2 3 4 5
| from .settings import * STATIC_ROOT = 'staticfiles' ALLOWED_HOSTS=["*"] DEBUG=False SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
|
Create .gitignore
create it in mysite folder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| *.pyc __pycache__ staticfiles ````
----
##### edit wsgi.py
```python= import os from django.core.wsgi import get_wsgi_application from dj_static import Cling os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') application = get_wsgi_application()
|
end up virtualenv mode
and login heroku
Git
Initailize project
1 2
| git init heroku git:remote -a <herokuapp_name>
|
set upo heroku use mysite folder prod_settings.py as website setting
1
| heroku config:set DJANGO_SETTINGS_MODULE=mysite.prod_settings
|
add project to repository
1 2 3
| git add . git commit -am "init commit git push heroku master
|