[PYTHON] Stellen Sie die Django-App in Heroku bereit [Teil 1]

Einführung

Aufzeichnung als Erinnerung beim Ausführen der Django-App auf Heroku. In Teil 1 wird die Startseite (It Work-Seite) der Django-App in Heroku angezeigt.

Nächstes Mal Bereitstellen der Django-App auf Heroku [Teil 2] ** Meine Umgebung **

Dinge notwendig

Konfiguration der App, die diesmal vorgenommen werden soll

Die diesmal erstellte Anwendung hat die folgende Konfiguration.

Verfassung


myProject
├── venv
├── Procfile
├── db.sqlite3
├── manage.py
├── myDjango
│   ├──__pycache__
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── requirements.txt
└── runtime.txt

Name des Stammverzeichnisses: myProject Django-Projektname: myDjango

Verfahren

Erstellen Sie eine Django-App

** Projektverzeichnis generieren / verschieben **

$ mkdir myProject
$ cd myProject

** Erstellen und Starten einer virtuellen Umgebung **

$ virtualenv venv
$ source venv/bin/activate

Erstellen Sie eine virtuelle Umgebung mit dem Namen venv mit "virtualenv venv". Führen Sie die virtuelle Umgebung venv mit source venv / bin / enabled aus. (Venv) wird nun vor dem Terminal-Benutzernamen angezeigt.

(Ergänzung) Wenn Sie die Ausführung der virtuellen Umgebung beenden möchten, führen Sie "Deaktivieren" im Terminal aus.

** Installiere den Django-Werkzeuggürtel **

$ pip install django-toolbelt

Die folgenden Pakete werden durch Installation von django-toolbelt installiert.

** Erstellen eines Django-Projekts **

$ django-admin.py startproject myDjango ./

Erstellen Sie ein Django-Projekt mit dem Namen "myDjango" im aktuellen Verzeichnis.

** Sprache / Zeitzone ändern ** Schreiben Sie den folgenden Teil von settings.py in das myDjango-Verzeichnis.

myDjango/settings.py


LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

** Wandern **

$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying sessions.0001_initial... OK

OK, wenn es so aussieht Vereinfacht ausgedrückt ist Migration eine Funktion, mit der Sie Tabellen in einer Datenbank in Python erstellen können, ohne SQL schreiben zu müssen. Referenz: [Rails "Migration", über die Anfänger leicht stolpern können](https://www.transnet.ne.jp/2015/12/29/rails "Migration", über die Anfänger leicht stolpern können "colnr /" https: //www.transnet. ne.jp/2015/12/29/rails "Migration" colnr / "), über die Anfänger leicht stolpern können

** Server starten **

$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
July 16, 2017 - 02:53:26
Django version 1.11.3, using settings 'myDjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Führen Sie python manage.py runserver aus und wenn die obige Anzeige angezeigt wird, ist es OK Wenn Sie diesen Befehl ausführen, können Sie die App unter http: //127.0.0.1: 8000 / sehen. Drücken Sie zum Beenden Strg + C.

** Überprüfen Sie, ob die App lokal gestartet wird ** Greifen Sie über Ihren Browser auf http://127.0.0.1:8000/ zu. Wenn alles gut geht, sehen Sie eine Seite wie die im Bild unten. はじめてのDjangoページ

Verwalten Sie Versionen mit git

** .gitignore erstellen ** Erstellen Sie eine Gitignore-Datei und schreiben Sie Folgendes:

.gitignore


*.pyc
venv
staticfiles
db.sqlite3

verpflichten

$ git init
$ git add .
$ git commit -m "Ich habe eine Django-App erstellt"

In Heroku bereitstellen

** Erstellen eines Procfiles **

$ echo "web: gunicorn myDjango.wsgi --log-file -" > Procfile

Procfile ist eine Datei, die Heroku beibringt, was zu tun ist. Referenz: Rolle von Herokus Procfile

** Erstellen von runtime.txt **

$ echo "python-3.6.1" > runtime.txt

Geben Sie die Python-Version in runtime.txt an.

** Anforderungsdatei erstellen.txt **

$ pip freeze > requirements.txt

Sie können eine solche Datei erstellen

requirements.txt


dj-database-url==0.4.2
dj-static==0.0.6
Django==1.11.3
django-toolbelt==0.0.1
gunicorn==19.7.1
psycopg2==2.7.1
pytz==2017.2
static3==0.7.0

** Mach die Django App auf Heroku verfügbar ** Fügen Sie der letzten Zeile von settings.py Folgendes hinzu.

myDjango/settings.py


# Parse database configuration from $DATABASE_URL
import dj_database_url
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)

# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

# Allow all host headers
ALLOWED_HOSTS = ['*']

# Static asset configuration
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

Schreiben Sie wsgi.py neu

myDjango/wsgi.py


import os

from dj_static import Cling
from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myDjango.settings")

application = Cling(get_wsgi_application())

** Erstellen einer Heroku-App **

$ heroku create

** Festlegen von Heroku-Umgebungsvariablen **

$ heroku config:set DISABLE_COLLECTSTATIC=1

Wenn Sie dies nicht tun, wird beim Drücken eine Fehlermeldung angezeigt.

** Push to Heroku **

$ git add .
$ git commit -m "Hat es mit Heroku zum Laufen gebracht"
$ git push heroku master

Push erfolgreich, wenn "remote: Überprüfung der Bereitstellung ... abgeschlossen" angezeigt wird

** Mit Heroku migrieren **

$ heroku run python manage.py migrate

Wenn Sie "Heroku Run" ausführen, können Sie den Befehl "Heroku" ausführen.

** Überprüfen Sie, ob es mit Heroku funktioniert **

$ heroku open

Sie können auf die Anwendung auf Heroku zugreifen, die dieses Mal mit "heroku open" erstellt wurde. Wenn alles gut geht, sehen Sie eine Seite wie die im Bild unten. Heroku上のはじめてのDjangoページ

Zusammenfassung

Dieses Mal habe ich sogar eine App von Django auf Heroku ausgeführt. Nächstes Mal erstellen wir ein Modell für die Verwaltungssite.

Nächstes Mal Bereitstellen der Django-App auf Heroku [Teil 2]

Referenz

Recommended Posts

Stellen Sie die Django-App in Heroku bereit [Teil 2]
Stellen Sie die Django-App in Heroku bereit [Teil 1]
Stellen Sie die Flask-App auf Heroku bereit
Stellen Sie die Flask-App auf Heroku bereit
Stellen Sie die Masonite-App auf Heroku 2020 bereit
Verschiedene Hinweise zur Bereitstellung der Django-App auf Heroku
Stellen Sie die Flask-App für Heroku bereit (bitter)
Django Heroku Deploy 1
Django Heroku Deploy 2
Stellen Sie Django api mit Heroku bereit (persönliches Memo)
So stellen Sie eine Django-App in nur 5 Minuten für Heroku bereit
Stellen Sie Python 3.6 / Django / Postgres-Webanwendungen in Azure bereit
Stellen Sie die Django-Anwendung in Google App Engine (Python3) bereit.
Stellen Sie die mit PTVS erstellte Django-App in Azure bereit
Stellen Sie das Django-Projekt für Heroku bereit
So stellen Sie Pybot, das einfachste Python-Lehrbuch, auf Heroku bereit
(Fehler) Stellen Sie eine mit Flask mit Heroku erstellte Web-App bereit
Führen Sie die App mit Flask + Heroku aus
Python + Django + Scikit-Learn + Mecab (1) mit Heroku
Implementieren Sie die Django-App auf Hy
Erkennen Sie App-Releases im App Store
Probieren Sie Ajax auf der Django-Seite aus
Python + Django + Scikit-Learn + Mecab (2) mit Heroku
DJango-Seite veröffentlicht auf Heroku: Practice
Stellen Sie das Django-Lernprogramm für IIS bereit ①
Django Blog auf Heroku: Login Implementierung
[Python + Heroku] Vom Zustand ohne Python zur Anzeige von etwas mit Heroku (Teil 2)
[Django] Fehler beim Bereitstellen von Heroku (2)
[Django] Probleme beim Bereitstellen von Heroku (1)
Ändern Sie die Reihenfolge von PostgreSQL in Heroku
Heroku-Bereitstellung der ersten Django-App, von der Anfänger abhängig sind
Erstellen Sie eine Django-App auf Docker und stellen Sie sie in AWS Fargate bereit
Django startete Teil 1
Redis auf Heroku
Veröffentlichtes Django-Projekt, entwickelt in Cloud9 auf Heroku
Exklusive Veröffentlichung der Django App mit ngrok
Django startete Teil 4
Shimehari auf Heroku
Stellen Sie Django-Apps unter Ubuntu + Nginx + MySQL bereit (Build)
Ich möchte eine Django-App auf Heroku hochladen
Als ich die Django-App für Heroku bereitgestellt habe, wurde das Modul nicht gefunden: <Projektname> .wsgi.
Führen Sie die Kolben-App auf Cloud 9 und Apache Httpd aus
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Veröffentlichen Sie Ihre Django-App unter Amazon Linux + Apache + mod_wsgi
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Memo zur Bereitstellung von Django × Postgresql auf Docker für Heroku
Stellen Sie eine vorhandene App mit Docker + Pyenv-Virtualenv + Uwsgi + Django bereit
Machen Sie das Modell zu einer Zeichenfolge in der Django-HTML-Vorlage
DJango-Seite auf Heroku veröffentlicht: Vorbereitung mein Suchtpunkt
Verwendung von Django mit Google App Engine / Python
Installieren Sie django auf Python + Anaconda und starten Sie den Server
Stellen Sie eine mit Streamlit erstellte Web-App für Heroku bereit
Starten Sie meine Django-App
Heroku-Einsatznotiz (Django)
Initialisieren Sie die Django-App
Sellerie-Notizen zu Django
Führen Sie Django auf PythonAnywhere aus
Hallo Welt mit Django