[PYTHON] Déployer l'application Django sur Heroku [Partie 2]

introduction

Enregistrez comme rappel lors de l'exécution de l'application Django sur Heroku. Dans la partie 2, vous pouvez utiliser la page de gestion de l'application Django pour créer et exploiter des modèles.

Dernière fois Deploy Django app to Heroku [Part 1]

Ce que j'ai fait la dernière fois

J'en ai fait assez pour afficher la page d'accueil (page It Work) de l'application Django dans Heroku.

Que faire cette fois

** Mon environnement **

macOS Sierra 10.12.5 Python 3.6.1 virtualenv 15.1.0

Configuration de l'application à effectuer cette fois

Constitution


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

procédure

Cette fois, nous allons créer un blog d'application qui ajoute le titre, le contenu et la date.

Travailler localement

Créer une nouvelle application

** Créez une application de blog **

$ python manage.py startapp blog

** Activez l'application de blog ** Blog ajouté à ʻINSTALLEF_APPS dans myDjango / settings.py`

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',
]

Créer un nouveau modèle

** Créez un modèle à utiliser dans l'application de blog ** Ajoutez ce qui suit à blog / models.py

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('Date de publication')

** Créer un fichier de migration **

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

** Migrer **

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

Autoriser la page de gestion à gérer le modèle

Réécrivez blog / admin.py comme suit.

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)

Créer un administrateur

$ python manage.py createsuperuser
Username (leave blank to use 'Si vous n'entrez rien, cette partie sera le nom d'utilisateur'): <Nom d'utilisateur lors de la connexion>
Email address: <adresse mail>
Password: <mot de passe>
Password (again): <Retaper le mot de passe>
Superuser created successfully.

** Démarrer le serveur **

$ python manage.py runserver

Vérification

Accédez à http://127.0.0.1:8000/admin

管理ページログイン画面

Si vous entrez le nom d'utilisateur et le mot de passe et que l'écran ci-dessous apparaît, cela réussit localement. 管理ページ

Courir sur Heroku

pousser

$ git add .
$ git commit -m "J'ai créé une application de blog"
$ git push heroku master

Émigrer

Les fichiers de migration ne sont pas créés sur Heroku (géré par git). Cependant, comme la base de données gérée par Heroku est postgres, une migration sur Heroku (application du contenu du modèle à la base de données) est requise.

$ heroku run python manage.py migrate 

Créer un administrateur

Comme l'administrateur créé localement est enregistré dans la base de données locale (SQLite3), il est nécessaire de créer un administrateur sur Heroku.

$ heroku run python manage.py createsuperuser

Vérification

** Ouvrez l'application sur Heroku **

$ heroku open

** Afficher la page de gestion ** Ouvrez en ajoutant / admin à l'URL de la page ouverte Exemple) https: // nom herokuapp.herokuapp.com / admin Ensuite, la Page de connexion confirmée précédemment apparaîtra, alors connectez-vous.

** Afficher la page de gestion du modèle de contenu de l'application Blog ** Cliquez sur Administration du site-> BLOG-> Contenu-> Ajouter. Heroku上の管理ページ.png

** Ajouter du contenu ** Les champs seront affichés comme définis dans [Contents class](#Create new model), alors entrez-les correctement et cliquez sur "Enregistrer". スクリーンショット 2017-07-16 4.26.12.png

** Vérifiez sur l'écran de gestion des modèles ** OK si le contenu que vous avez ajouté précédemment est affiché スクリーンショット 2017-07-16 4.26.58.png

prime

A propos de DB géré par Django et DB géré par Heroku

Django utilise SQLite par défaut et est facile à utiliser. Cependant, comme Heroku ne peut fondamentalement pas gérer SQLite et que postgreSQL est la norme, Partie 1 Est configuré pour gérer PostgreSQL sur Heroku.

Jetez un œil à la base de données sur Heroku.

Pour accéder à la base de données sur Heroku, exécutez la commande suivante.

$ heroku pg:psql

Si vous pouvez y accéder, ʻApp name :: DATABASE => sera affiché, alors entrez \ z. Note) Affichez la liste des tableaux dans \ z`: postgres

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)

Vous pouvez utiliser la base de données en entrant réellement une instruction SQL.

dry-brook-87010::DATABASE=> select * from blog_contents;
 id |   title    |       word_text        |       date_time
----+------------+------------------------+------------------------
  1 |Bonjour|C'était une belle journée aujourd'hui.| 2017-07-15 19:28:33+00
(1 row)

Résumé

Cette fois, j'ai rendu disponible la page de gestion, créé une nouvelle application et son modèle, et même géré la base de données sur Heroku. La prochaine fois, je créerai un modèle et même publierai le blog que j'ai fait cette fois à l'extérieur. (des plans)

référence

Introduction à Python Comment utiliser Django (Partie 11) Utilisez le modèle.

Recommended Posts

Déployer l'application Django sur Heroku [Partie 2]
Déployer l'application Django sur Heroku [Partie 1]
Déployez l'application Flask sur Heroku
Déployez l'application Flask sur heroku
Déployer l'application Masonite sur Heroku 2020
Notes diverses sur le déploiement de l'application django sur Heroku
Déployer l'application Django sur Heroku
Déployer l'application Flask sur heroku (amer)
Django Heroku Deploy 1
Django Heroku Deploy 2
Déployer l'API Django avec heroku (mémo personnel)
Comment déployer une application Django sur heroku en seulement 5 minutes
Déployer l'application Django sur Google App Engine (Python3)
Déployer l'application Django créée avec PTVS sur Azure
Déployer le projet django sur heroku
Comment déployer Pybot, le manuel Python le plus simple, sur Heroku
(Échec) Déployer une application Web créée avec Flask avec heroku
Exécutez l'application avec Flask + Heroku
python + django + scikit-learn + mecab (1) avec heroku
Implémenter l'application Django sur Hy
Détecter les versions d'applications dans l'App Store
Essayez Ajax sur la page Django
python + django + scikit-learn + mecab (2) avec heroku
Page DJango publiée sur heroku: Practice
Déployer le didacticiel Django sur IIS ①
Blog Django sur heroku: implémentation de la connexion
[Python + heroku] De l'état sans Python à l'affichage de quelque chose avec heroku (Partie 1)
[Python + heroku] De l'état sans Python à l'affichage de quelque chose avec heroku (partie 2)
[Django] Erreur rencontrée lors du déploiement de heroku (2)
[Django] Problème rencontré lors du déploiement d'heroku (1)
Changer l'ordre de PostgreSQL dans Heroku
Déploiement Heroku de la première application Django à laquelle les débutants sont accros
Créez une application Django sur Docker et déployez-la sur AWS Fargate
Django a commencé la partie 1
Redis sur Heroku
Publication du projet django développé dans Cloud9 sur heroku
Sortie exclusive de l'application Django utilisant ngrok
Django a commencé la partie 4
shimehari sur heroku
Déployer des applications Django sur Ubuntu + Nginx + MySQL (Build)
Je souhaite télécharger une application Django sur heroku
Lorsque j'ai déployé l'application Django sur Heroku, j'ai obtenu le module introuvable: <nom-projet> .wsgi.
Exécutez l'application flask sur Cloud 9 et Apache Httpd
J'ai essayé d'exécuter l'application sur la plateforme IoT "Rimotte"
Comment déployer une application Django dans le cloud Alibaba
Essayez de créer une application Todo avec le framework Django REST
Publiez votre application Django sur Amazon Linux + Apache + mod_wsgi
J'ai essayé python pour la première fois avec heroku
Mémo de déploiement de Django × Postgresql sur Docker vers Heroku
Déployer une application existante avec docker + pyenv-virtualenv + uwsgi + django
Faire du modèle une chaîne sur le modèle HTML Django
Page DJango publiée sur heroku: Préparation mon point addictif
Comment utiliser Django avec Google App Engine / Python
Installez django sur python + anaconda et démarrez le serveur
Déployer une application Web créée avec Streamlit sur Heroku
Lancer mon application Django
mémo de déploiement heroku (Django)
Initialiser l'application Django
Notes de céleri sur Django