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 **
Heroku-Konto Referenz: Heroku-Anfänger versuchen Hallo, Heroku
Installation von virtualenv (muss in einer Python3-Umgebung installiert sein) Referenz: Python-Umgebung mit virtualenv verwalten
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
** 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.
** .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"
** 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.
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]
Recommended Posts