[PYTHON] Stellen Sie Django api mit Heroku bereit (persönliches Memo)

Spezifikation

・ Python 2.7.10 -DB ist sqlite3 lokal und postgreSQL für die Produktion

Verfahren

1 </ b> .cd [Django-Projektpfad] Generieren Sie 2 </ b> .requirements.txt. (Python-Version package.json oder gemfile) Wenn Sie auf "pip freeze> require.txt" klicken, können Sie den in den Pip von virtualenv auf einmal bringen. In meinem Fall sieht es so aus

requirements.txt


dj-database-url==0.4.1
Django==1.9.7
django-filter==0.13.0
djangorestframework==3.3.3
psycopg2==2.6.1

Geben Sie Folgendes in 3 </ b> ein .vi Procfile web: python manage.py runserver 0.0.0.0:$PORT --noreload Der DB-Teil von 4 </ b> .setting.py wurde geändert

setting.py


import os
import dj_database_url

DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
if bool(os.environ.get('LOCAL_DEV', False)):
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3', 
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
            'USER': '',                      
            'PASSWORD': '',             
            'HOST': '',                     
            'PORT': '',                     
        }
    }

(Wenn Sie die Pyb-Datei 5 </ b> nicht festschreiben möchten, erstellen Sie einen Gitignore.) Drücken Sie auf 6 </ b> .heroku git init git add . git commit -m "hogegggggge" heroku create [app name] git push heroic master

Dann

remote:            raise ImproperlyConfigured("You're using the staticfiles app "
remote:        django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
remote: 
remote:  !     Error while running '$ python manage.py collectstatic --noinput'.
remote:        See traceback above for details.
remote: 
remote:        You may need to update application code to resolve this error.
remote:        Or, you can disable collectstatic for this application:
remote: 
remote:           $ heroku config:set DISABLE_COLLECTSTATIC=1
remote: 
remote:        https://devcenter.heroku.com/articles/django-assets

Weil es herauskam Fügen Sie der Datei settings.py Folgendes hinzu

setting.py


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/

#Ich habe folgendes hinzugefügt
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'),
)
#Ende des Postskripts

Apropos heroku config:set DISABLE_COLLECTSTATIC=1 Ausführen. Führen Sie dann "git push heroku master" aus.

Counting objects: 31, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (28/28), done.
Writing objects: 100% (31/31), 8.84 KiB | 0 bytes/s, done.
Total 31 (delta 10), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Python app detected
remote: -----> Installing python-2.7.11
remote:      $ pip install -r requirements.txt
remote:        Collecting dj-database-url==0.4.1 (from -r requirements.txt (line 1))
remote:          Downloading dj-database-url-0.4.1.tar.gz
remote:        Collecting Django==1.9.7 (from -r requirements.txt (line 2))
remote:          Downloading Django-1.9.7-py2.py3-none-any.whl (6.6MB)
remote:        Collecting django-filter==0.13.0 (from -r requirements.txt (line 3))
remote:          Downloading django_filter-0.13.0-py2.py3-none-any.whl
remote:        Collecting djangorestframework==3.3.3 (from -r requirements.txt (line 4))
remote:          Downloading djangorestframework-3.3.3-py2.py3-none-any.whl (662kB)
remote:        Collecting psycopg2==2.6.1 (from -r requirements.txt (line 5))
remote:          Downloading psycopg2-2.6.1.tar.gz (371kB)
remote:        Installing collected packages: dj-database-url, Django, django-filter, djangorestframework, psycopg2
remote:          Running setup.py install for dj-database-url: started
remote:            Running setup.py install for dj-database-url: finished with status 'done'
remote:          Running setup.py install for psycopg2: started
remote:            Running setup.py install for psycopg2: finished with status 'done'
remote:        Successfully installed Django-1.9.7 dj-database-url-0.4.1 django-filter-0.13.0 djangorestframework-3.3.3 psycopg2-2.6.1
remote: 
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote: 
remote: -----> Compressing...
remote:        Done: 41.7M
remote: -----> Launching...
remote:        Released v6
remote:        https://cashe-api.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/cashe-api.git
 * [new branch]      master -> master

Ich hab es geschafft. später, heroku run python manage.py migrate Also die anfängliche Einstellung von DB auf Heroku heroku open Sie können es im Browser sehen. Für mehr Informationen, Siehe die offizielle Seite (https://devcenter.heroku.com/articles/django-app-configuration).

Referenz

http://source.hatenadiary.jp/entry/2013/02/05/173636 http://qiita.com/jtwp470/items/0034c85130928851ce72

Recommended Posts