Enregistrez comme rappel lors de l'exécution de l'application Django sur Heroku. La partie 1 concerne l'affichage de la page de démarrage (page It Work) de l'application Django dans Heroku.
La prochaine fois Déployez l'application Django sur Heroku [Partie 2] ** Mon environnement **
Compte Heroku Référence: Les débutants Heroku essayent Hello, Heroku
Installation de virtualenv (doit être installé dans l'environnement python3) Référence: Gérer l'environnement python avec virtualenv
L'application créée cette fois a la configuration suivante.
Constitution
myProject
├── venv
├── Procfile
├── db.sqlite3
├── manage.py
├── myDjango
│ ├──__pycache__
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── requirements.txt
└── runtime.txt
Nom du répertoire racine: myProject
Nom du projet Django: myDjango
** Générer / déplacer le répertoire du projet **
$ mkdir myProject
$ cd myProject
** Création et démarrage d'un environnement virtuel **
$ virtualenv venv
$ source venv/bin/activate
Construisez un environnement virtuel nommé venv avec virtualenv venv
.
Exécutez l'environnement virtuel venv avec source venv / bin / activate
. (Venv)
apparaîtra maintenant avant le nom d'utilisateur du terminal.
(Supplément)
Lorsque vous souhaitez mettre fin à l'exécution de l'environnement virtuel, exécutez disable
dans le terminal.
** Installez django-toolbelt **
$ pip install django-toolbelt
Les packages suivants sont installés en installant django-toolbelt.
** Création d'un projet Django **
$ django-admin.py startproject myDjango ./
Créez un projet Django appelé myDjango
dans le répertoire courant.
** Changer de langue / fuseau horaire **
Réécrivez la partie suivante de settings.py
dans le répertoire myDjango.
myDjango/settings.py
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
** Migrer **
$ 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 si ça ressemble à ça Pour faire simple, la migration est une fonctionnalité qui vous permet de créer des tables dans une base de données en Python sans écrire de SQL. Référence: [Rails "Migration" sur lesquels les débutants peuvent facilement trébucher](https://www.transnet.ne.jp/2015/12/29/rails "Migration" que les débutants peuvent facilement trébucher sur "colnr /" https: //www.transnet. ne.jp/2015/12/29/rails "Migration" colnr / ") que les débutants peuvent facilement trébucher
** Démarrer le serveur **
$ 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.
Exécutez python manage.py runserver
et lorsque l'affichage ci-dessus est affiché, c'est OK
En exécutant cette commande, vous pouvez voir l'application sur http: //127.0.0.1: 8000 /
.
Appuyez sur Ctrl + C pour quitter.
** Vérifiez si l'application démarre localement ** Accédez à http://127.0.0.1:8000/ depuis votre navigateur. Si tout se passe bien, vous verrez une page comme celle de l'image ci-dessous.
** Création de .gitignore ** Créez un fichier .gitignore et écrivez ce qui suit:
.gitignore
*.pyc
venv
staticfiles
db.sqlite3
commettre
$ git init
$ git add .
$ git commit -m "J'ai créé une application Django"
** Création d'un Procfile **
$ echo "web: gunicorn myDjango.wsgi --log-file -" > Procfile
Procfile est un fichier qui apprend à Heroku quoi faire. Référence: Role of Heroku's Procfile
** Création de runtime.txt **
$ echo "python-3.6.1" > runtime.txt
Spécifiez la version Python dans runtime.txt.
** Création de requirements.txt **
$ pip freeze > requirements.txt
Vous pouvez créer un fichier comme celui-ci
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
** Rendre l'application Django disponible sur Heroku ** Ajoutez ce qui suit à la dernière ligne de settings.py.
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'),
)
Réécrire wsgi.py
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())
** Création d'une application Heroku **
$ heroku create
** Définition des variables d'environnement Heroku **
$ heroku config:set DISABLE_COLLECTSTATIC=1
Si vous ne le faites pas, vous obtiendrez une erreur lors de la poussée.
** Pousser vers Heroku **
$ git add .
$ git commit -m "Je l'ai fait fonctionner avec Heroku"
$ git push heroku master
Push réussi lorsque remote: Verifying deploy ... done.
s'affiche
** Migrer avec Heroku **
$ heroku run python manage.py migrate
Si vous exécutez heroku run 〇〇
, vous pouvez exécuter la commande 〇〇 sur heroku.
** Vérifiez si cela fonctionne avec Heroku **
$ heroku open
Vous pouvez accéder à l'application sur Heroku créée cette fois avec heroku open
.
Si tout se passe bien, vous verrez une page comme celle de l'image ci-dessous.
Cette fois, j'ai même lancé une simple application créée par Django sur Heroku. La prochaine fois, nous créerons un modèle pour le site de gestion.
La prochaine fois Déployez l'application Django sur Heroku [Partie 2]
Recommended Posts