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

Einführung

Aufzeichnung als Erinnerung beim Ausführen der Django-App auf Heroku. In Teil 2 können Sie die Verwaltungsseite der Django-App verwenden, ein Modell erstellen und es bedienen.

Letztes Mal Django-App für Heroku bereitstellen [Teil 1]

Was ich letztes Mal gemacht habe

Ich habe genug getan, um die Startseite (It Work-Seite) der Django-App in Heroku anzuzeigen.

Was ist diesmal zu tun?

** Meine Umgebung **

macOS Sierra 10.12.5 Python 3.6.1 virtualenv 15.1.0

Konfiguration der App, die diesmal vorgenommen werden soll

Verfassung


myProject
├── Procfile
├── blog
│   ├── __init__.py
│   ├── __pycache__
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
├── myDjango
│   ├── __init__.py
│   ├── __pycache__
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── requirements.txt
└── runtime.txt

Verfahren

Dieses Mal erstellen wir einen App-Blog, in dem Titel, Inhalt und Datum hinzugefügt werden.

Lokal arbeiten

Erstellen Sie eine neue App

** Erstelle eine Blog App **

$ python manage.py startapp blog

** Aktiviere die Blog App ** Blog zu INSTALLEF_APPS in myDjango / settings.py hinzugefügt

myDjango/settings.py


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

Erstellen Sie ein neues Modell

** Erstellen Sie ein Modell zur Verwendung in der Blog-App ** Fügen Sie Folgendes zu blog / models.py hinzu

blog/models.py


class Contents(models.Model):
    objects = None
    title = models.CharField(max_length=20)
    word_text = models.CharField(max_length=140)
    date_time = models.DateTimeField('Datum der Veröffentlichung')

** Migrationsdatei erstellen **

$ python manage.py makemigrations blog 
Migrations for 'blog':
  blog/migrations/0001_initial.py
    - Create model Contents

** Wandern **

$ python manage.py migrate 
Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
  Applying blog.0001_initial... OK

Lassen Sie die Verwaltungsseite das Modell bearbeiten

Schreiben Sie blog / admin.py wie folgt um.

blog/admin.py


from django.contrib import admin
from .models import Contents


class ContentsAdmin(admin.ModelAdmin):
    list_display = ('id', 'title', 'word_text', 'date_time')


admin.site.register(Contents, ContentsAdmin)

Erstellen Sie einen Administrator

$ python manage.py createsuperuser
Username (leave blank to use 'Wenn Sie nichts eingeben, ist dieser Teil der Benutzername'): <Benutzername beim Login>
Email address: <Mail Adresse>
Password: <Passwort>
Password (again): <Kennwort erneut eingeben>
Superuser created successfully.

** Server starten **

$ python manage.py runserver

Bestätigung

Gehen Sie zu http://127.0.0.1:8000/admin

管理ページログイン画面

Wenn Sie den Benutzernamen und das Kennwort eingeben und der folgende Bildschirm angezeigt wird, ist dies lokal erfolgreich. 管理ページ

Lauf auf Heroku

drücken

$ git add .
$ git commit -m "Ich habe eine Blog-App erstellt"
$ git push heroku master

Wandern

Migrationsdateien werden nicht auf Heroku erstellt (verwaltet von git). Da es sich bei der von Heroku verwalteten Datenbank jedoch um Postgres handelt, ist eine Migration auf Heroku (Anwenden des Inhalts des Modells auf die Datenbank) erforderlich.

$ heroku run python manage.py migrate 

Administrator erstellen

Da der lokal erstellte Administrator in der lokalen Datenbank (SQLite3) registriert ist, muss auf Heroku ein Administrator erstellt werden.

$ heroku run python manage.py createsuperuser

Bestätigung

** Öffne die App auf Heroku **

$ heroku open

** Verwaltungsseite anzeigen ** Öffnen Sie, indem Sie der URL der geöffneten Seite / admin hinzufügen Beispiel) https: // herokuapp name.herokuapp.com / admin Dann wird die Anmeldeseite wie zuvor bestätigt angezeigt. Melden Sie sich also an.

** Zeigen Sie die Inhaltsmodellverwaltungsseite der Blog-App an ** Klicken Sie auf Site Administration-> BLOG-> Inhalt-> Hinzufügen. Heroku上の管理ページ.png

** Inhalt hinzufügen ** Die Felder werden wie in [Inhaltsklasse](# Neues Modell erstellen) festgelegt angezeigt. Geben Sie sie daher entsprechend ein und klicken Sie auf "Speichern". スクリーンショット 2017-07-16 4.26.12.png

** Überprüfen Sie auf dem Modellverwaltungsbildschirm ** OK, wenn der zuvor hinzugefügte Inhalt angezeigt wird スクリーンショット 2017-07-16 4.26.58.png

Bonus

Über DB von Django und DB von Heroku

Django verwendet standardmäßig SQLite und ist einfach zu bedienen. Da Heroku jedoch grundsätzlich nicht mit SQLite umgehen kann und postgreSQL der Standard ist, Teil 1 Ist auf postgreSQL unter Heroku eingestellt.

Schauen Sie sich die Datenbank auf Heroku an.

Führen Sie den folgenden Befehl aus, um auf die Datenbank in Heroku zuzugreifen.

$ heroku pg:psql

Wenn Sie darauf zugreifen können, wird App name :: DATABASE => angezeigt. Geben Sie also \ z ein. Hinweis) Zeigen Sie die Tabellenliste in \ z: postgres an

dry-brook-87010::DATABASE=> \z
                                            Access privileges
 Schema |               Name                |   Type   | Access privileges | Column privileges | Policies
--------+-----------------------------------+----------+-------------------+-------------------+----------
 public | auth_group                        | table    |                   |                   |
 public | auth_group_id_seq                 | sequence |                   |                   |
 public | auth_group_permissions            | table    |                   |                   |
 public | auth_group_permissions_id_seq     | sequence |                   |                   |
 public | auth_permission                   | table    |                   |                   |
 public | auth_permission_id_seq            | sequence |                   |                   |
 public | auth_user                         | table    |                   |                   |
 public | auth_user_groups                  | table    |                   |                   |
 public | auth_user_groups_id_seq           | sequence |                   |                   |
 public | auth_user_id_seq                  | sequence |                   |                   |
 public | auth_user_user_permissions        | table    |                   |                   |
 public | auth_user_user_permissions_id_seq | sequence |                   |                   |
 public | blog_contents                  | table    |                   |                   |
 public | blog_contents_id_seq           | sequence |                   |                   |
 public | django_admin_log                  | table    |                   |                   |
 public | django_admin_log_id_seq           | sequence |                   |                   |
 public | django_content_type               | table    |                   |                   |
 public | django_content_type_id_seq        | sequence |                   |                   |
 public | django_migrations                 | table    |                   |                   |
 public | django_migrations_id_seq          | sequence |                   |                   |
 public | django_session                    | table    |                   |                   |
(21 rows)

Sie können die Datenbank betreiben, indem Sie tatsächlich eine SQL-Anweisung eingeben.

dry-brook-87010::DATABASE=> select * from blog_contents;
 id |   title    |       word_text        |       date_time
----+------------+------------------------+------------------------
  1 |Hallo|Es war heute ein schöner Tag.| 2017-07-15 19:28:33+00
(1 row)

Zusammenfassung

Dieses Mal habe ich die Verwaltungsseite verfügbar gemacht, eine neue App und ihr Modell erstellt und sogar die Datenbank auf Heroku verwaltet. Nächstes Mal werde ich eine Vorlage erstellen und sogar den Blog, den ich diesmal erstellt habe, nach außen veröffentlichen. (Pläne)

Referenz

Einführung in Python Verwendung von Django (Teil 11) Verwenden Sie das Modell.

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 Django-Anwendung auf Heroku bereit
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 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
Ich habe versucht, die App auf der IoT-Plattform "Rimotte" auszuführen.
So stellen Sie eine Django-Anwendung in der Alibaba-Cloud bereit
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