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]
Ich habe genug getan, um die Startseite (It Work-Seite) der Django-App in Heroku anzuzeigen.
** Meine Umgebung **
macOS Sierra 10.12.5 Python 3.6.1 virtualenv 15.1.0
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
Dieses Mal erstellen wir einen App-Blog, in dem Titel, Inhalt und Datum hinzugefügt werden.
** 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 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
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)
$ 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
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.
$ git add .
$ git commit -m "Ich habe eine Blog-App erstellt"
$ git push heroku master
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
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
** Ö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.
** 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".
** Überprüfen Sie auf dem Modellverwaltungsbildschirm ** OK, wenn der zuvor hinzugefügte Inhalt angezeigt wird
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.
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)
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)
Einführung in Python Verwendung von Django (Teil 11) Verwenden Sie das Modell.
Recommended Posts