[PYTHON] Pour l'instant, celui qui crée une page d'accueil avec Django à la vitesse d'une seconde et la publie sur Heroku (compatible Windows)

Il existe une bibliothèque appelée Django qui vous permet de créer des applications Web à l'aide de Python. Récemment, il semble qu'il vaut mieux utiliser PaaS que de louer un serveur lors de la publication d'un service Web. Donc, en guise de critique pour moi-même, je vais résumer la procédure depuis la création d'une page d'accueil avec Django, son déploiement sur Heroku et sa publication. De plus, pour une raison quelconque, bon nombre de ces articles techniques liés au Web sont pour Mac, mais cet article est compatible avec Windows.

Construction d'environnement virtuel

Quoi qu'il en soit, créez un environnement virtuel. Cet article utilise Anaconda, mais pipenv peut être n'importe quoi. Dans le pire des cas, vous pouvez utiliser l'environnement Python local tel quel, mais je ne le recommande pas car requirements.txt sera génial lorsque vous ferez pip freeze plus tard. Il existe également une forte possibilité de mousse lors du déploiement.

C:\Users\hoge>conda create -n django-heroku python==3.7
C:\Users\hoge>conda activate django-heroku
(django-heroku) C:\Users\hoge\testproject>conda install django==2.2

La version de python n'est pas si sévère, donc je pense que tout va bien, mais d'une manière ou d'une autre, je spécifie 3.7. Veuillez consulter ici pour les versions prises en charge.

Création de projet Django

(django-heroku) C:\Users\hoge\testproject>django-admin startproject testproject .  
(django-heroku) C:\Users\hoge\testproject>python manage.py startapp testapp

Modifiez la partie ʻINSTALLED_APPS de C: \ Users \ hoge \ testproject \ testproject \ settings.py` comme suit.

settings.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'testapp',#ajouter à
]

À ce stade, vous devriez déjà pouvoir le voir sur votre serveur local.

(django-heroku) C:\Users\hoge\testproject>python manage.py runserver

Si vous vous connectez à http://127.0.0.1:8000/, ce sera comme suit.

image.png

Afficher uniquement les caractères

Je vais afficher les caractères là-dessus.

Modifiez C: \ Users \ hoge \ testproject \ testproject \ urls.py comme suit.

urls.py


from django.contrib import admin
from django.urls import path

from django.urls import include #ajouter à

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include("testapp.testappurls")) #ajouter à
]

Créez un fichier appelé testappurls.py sous C: \ Users \ hoge \ testproject \ testapp (il n'existe pas par défaut). Modifiez le fichier comme suit.

testappurls.py


from django.urls import path
from . import views

app_name = 'testapp'

urlpatterns = [
    path('', views.index, name='index'),
]

Modifiez C: \ Users \ hoge \ testproject \ testapp \ views.py comme suit.

views.py


from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse #ajouter à


def index(request):#ajouter à
    return HttpResponse('Harowa')#ajouter à

L'affichage de http://127.0.0.1:8000/ devrait ressembler à ceci:

image.png

Déployer

Déployez ceci. Nous allons créer des fichiers de paramètres.

(django-heroku) C:\Users\hoge\testproject>echo web: gunicorn testproject.wsgi --log-file - > Procfile
(django-heroku) C:\Users\hoge\testproject>echo python-3.7.0 > runtime.txt
(django-heroku) C:\Users\hoge\testproject>pip install django-heroku
(django-heroku) C:\Users\hoge\testproject>pip install gunicorn
(django-heroku) C:\Users\hoge\testproject>pip freeze > requirements.txt

Actuellement, il s'agit d'un environnement de débogage local, alors faites-en un environnement de production. Modifiez les parties DEBUG et ʻALLOWED_HOSTS de C: \ Users \ hoge \ testproject \ testproject \ settings.py` comme suit.

settings.py


# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['*']

Créez un référentiel git et envoyez-le à Heroku. On suppose que vous avez déjà installé la CLI (face d'instance de ligne de commande) de git et Heroku.

(django-heroku) C:\Users\hoge\testproject>git init
(django-heroku) C:\Users\hoge\testproject>git add .
(django-heroku) C:\Users\hoge\testproject>git commit -m "first commit"
(django-heroku) C:\Users\hoge\testproject>heroku login
(django-heroku) C:\Users\hoge\testproject>heroku create hibit-webpage-test
(django-heroku) C:\Users\hoge\testproject>heroku config:set DISABLE_COLLECTSTATIC=1
(django-heroku) C:\Users\hoge\testproject>git push heroku master

Maintenant c'est publié!

Allez sur https://hibit-webpage-test.herokuapp.com/ et vous devriez voir quelque chose comme ceci:

image.png

point important

Pour le moment, je visais simplement à publier du contenu Web (uniquement des caractères) sous forme d'URL, donc je ne pense pas à la migration ou à la sécurité de la base de données. Je vais écrire une suite en réponse à beaucoup de choses étranges.

Page qui a été prise en charge

https://qiita.com/noraricl/items/08937a508a2abecc7179 https://qiita.com/frosty/items/66f5dff8fc723387108c

Recommended Posts

Pour l'instant, celui qui crée une page d'accueil avec Django à la vitesse d'une seconde et la publie sur Heroku (compatible Windows)
Collectez des images de chats à la vitesse d'une seconde et visez la tribu Cat Hills
Exécutez yolov4 "pour le moment" dans Windows
Jusqu'à ce que vous puissiez installer Blender et l'exécuter avec python pour le moment
J'ai essayé d'exécuter PIFuHD sur Windows pour le moment
Résumé de l'exploration d'image effectuée à la vitesse d'une seconde
Jusqu'au début du tutoriel django avec pycharm sous Windows
L'histoire de la création d'un outil qui fonctionne sur Mac et Windows sur le site de développement de jeux
Mettez à jour les données en les téléchargeant sur s3 d'aws avec une commande, et supprimez les données utilisées (en chemin)
J'ai mesuré la vitesse de la notation d'inclusion de liste, pendant et pendant avec python2.7.
La deuxième nuit de la boucle avec pour
Avantages et inconvénients de Django que pensent les personnes ayant un an d'expérience
Définir la valeur de division dans Django et la refléter facilement à l'écran
Transformez plusieurs listes avec l'instruction for en même temps en Python