En este Tutoriales En Linea les mostraremos la manera de subir su app de python en Heroku que es una plataforma como servicio de computación en la Nube que soporta distintos lenguajes de programación. 4x1f3v



El tutorial asume que usted tiene:

Heroku Postgres gratuito , Heroku Data para Redis® gratuito y Heroku Dynos gratuito ya no están disponibles.

Si tiene aplicaciones que usan estos recursos, debe actualizar a nuestros nuevos planes de bajo costo u otros planes pagos para asegurarse de que sus aplicaciones continúen ejecutándose y conserven sus datos. 

Instalar la CLI de Heroku 234l4v

En este paso, instalará la interfaz de línea de comandos (CLI) de Heroku. Utiliza la CLI para istrar y escalar sus aplicaciones, aprovisionar complementos, ver los registros de su aplicación y ejecutar su aplicación localmente. Descargue y ejecute el instalador para su plataforma: 

Una vez instalado, puede usar el comando heroku desde su shell de comandos. En Windows, inicie el Símbolo del sistema (cmd.exe) o Powershell para acceder al shell de comandos.

Utilice el comando heroku para iniciar sesión en la CLI de Heroku:

$ heroku 
heroku: Press any key to open up the browser to  or q to exit
 ›   Warning: If browser does not open, visit
 ›   https://cli-auth.heroku.com/auth/browser/***
heroku: Waiting for ...
Logging in... done
Logged in as me@example.com

Este comando abre su navegador web a la página de inicio de sesión de Heroku. Si su navegador ya ha iniciado sesión en Heroku, simplemente haga clic en el botón que se muestra en la página.


Esta autenticación es necesaria para que los comandos heroku y git funcionen correctamente.


Bueno, si tenemos nuestra aplicaion de python en nuestro ordenador y previamente ya la hemos hecho funcionar, simplemente siga estos pasos:

Nos ubicamos en el direcctorio de nuestra app, cd y el nombre de nuestra app.py:

C:\s\Omega>cd C:\s\Omega\PLAGIO
C:\s\Omega\PLAGIO>

Sin embargo si queremos clonar la aplicación de muestra para que tenga una versión local del código que luego pueda implementar en Heroku, ejecute los siguientes comandos en su shell o terminal de comandos local:

$ git clone https://github.com/omegayalfa/lo_que_quieras_clonar.git
$ cd lo_que_quieras_clonar

Ahora tiene un repositorio git en funcionamiento que contiene una aplicación simple, runtime.txt que especifica qué versión de Python se usará y un requirements.txt, que usa el de dependencias de Python, Pip. Otro archivo que Heroku necesita es el Procfile. Éste le dice a Heroku qué comandos ejecutar para iniciar nuestro sitio web. Abre el editor de código, crea un archivo llamado Procfile en el directorio de tu proyecto y añade esta línea:

web: gunicorn app:app

Esta línea significa que vamos a desplegar una aplicación web, y que lo haremos ejecutando el comando gunicorn app:app (gunicorn es como una versión más potente del comando runserver de Django - recuerde que app:app es la app.py es el lanzador de nuestro proyecto en pocas palabras). Ahora guárdalo. ¡Hecho!


Esta imagen es una estructura de mi proyecto:



En este paso, implementará la aplicación en Heroku. Cree una aplicación en Heroku, que prepara a Heroku para recibir su código fuente con el comando heroku create - Recuerde que estamos ubicado en el directorio de nuestra aplicacion Python.

$ heroku create
Creating app... done, ⬢ serene-caverns-82714
https://serene-caverns-82714.herokuapp.com/ | https://git.heroku.com/serene-caverns-82714.git

Cuando crea una aplicación, heroku también crea un control remoto de git (llamado ) y se asocia con su repositorio de git local. Heroku genera un nombre aleatorio (en este caso serene-caverns-82714) para su aplicación, o puede pasar un parámetro para especificar su propio nombre de aplicación.


Si en algún momento te apetece cambiar el nombre de tu aplicación en Heroku, puedes hacerlo con este comando heroku apps:rename (reemplaza nombre-nuevo con el nuevo nombre que quieras usar) mas sobre rename:

$ heroku apps:rename nombre-nuevo

Nota: Recuerda que después de cambiar el nombre de la aplicación, tienes que visitar [nombre-nuevo].herokuapp.com para ver tu sitio web.


Ahora implemente su código con el comando git push heroku master:

$ git push heroku master
Enumerating objects: 708, done.
Counting objects: 100% (708/708), done.
Delta compression u to 8 threads
Compressing objects: 100% (311/311), done.
Writing objects: 100% (708/708), 128.11 KiB | 64.05 MiB/s, done.
Total 708 (delta 352), reused 708 (delta 352), pack-reused 0
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Building on the Heroku-22 stack
remote: -----> Determining which buildpack to use for this app
remote: -----> Python app detected
remote: -----> Using Python version specified in runtime.txt
remote: -----> Installing python-3.10.7
remote: -----> Installing pip 22.1.2, setuptools 60.10.0 and wheel 0.37.1
remote: -----> Installing SQLite3
remote: -----> Installing requirements with pip
remote:        Collecting django<5.0,>=4.0
remote:          ing Django-4.1-py3-none-any.whl (8.1 MB)
remote:        Collecting gunicorn<21.0,>=20.0
remote:          ing gunicorn-20.1.0-py3-none-any.whl (79 kB)
remote:        Collecting dj-database-url<2.0,>=1.0
remote:          ing dj_database_url-1.0.0-py3-none-any.whl (6.6 kB)
remote:        Collecting whitenoise<7.0,>=6.0
remote:          ing whitenoise-6.2.0-py3-none-any.whl (19 kB)
remote:        Collecting psycopg2<3.0,>=2.0
remote:          ing psycopg2-2.9.3.tar.gz (380 kB)
remote:          Preparing metadata (setup.py): started
remote:          Preparing metadata (setup.py): finished with status 'done'
remote:        Collecting sqlparse>=0.2.2
remote:          ing sqlparse-0.4.2-py3-none-any.whl (42 kB)
remote:        Collecting asgiref<4,>=3.5.2
remote:          ing asgiref-3.5.2-py3-none-any.whl (22 kB)
remote:        Building wheels for collected packages: psycopg2
remote:          Building wheel for psycopg2 (setup.py): started
remote:          Building wheel for psycopg2 (setup.py): finished with status 'done'
remote:          Created wheel for psycopg2: filename=psycopg2-2.9.3-310-310-linux_x86_64.whl size=159240 sha256=3399f4acef86b87602002c03ed36cdabaf0a70abc8fa3f412196a8a3d34715c0
remote:          Stored in directory: /tmp/pip-ephem-wheel-cache-7q6yuegd/wheels/81/b6/3d/091aad3e8919ea76c84c2674b02ce3ab52de882e091c39249e
remote:        Successfully built psycopg2
remote:        Installing collected packages: whitenoise, sqlparse, psycopg2, gunicorn, asgiref, django, dj-database-url
remote:        Successfully installed asgiref-3.5.2 dj-database-url-1.0.0 django-4.1 gunicorn-20.1.0 psycopg2-2.9.3 sqlparse-0.4.2 whitenoise-6.2.0
remote: -----> $ python manage.py collectstatic --noinput
remote:        131 static files copied to '/tmp/build_b1795ac0/staticfiles', 385 post-processed.
remote:
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing...
remote:        Done: 29.3M
remote: -----> Launching...
remote:        Released v5
remote:        https://serene-caverns-82714.herokuapp.com/ deployed to Heroku
remote:
remote: ing deploy... done.
To https://git.heroku.com/serene-caverns-82714.git
 * [new branch]      master -> master

Ahora visite la aplicación en la URL generada por su nombre de aplicación. Como un atajo útil, puede abrir el sitio web de la siguiente manera: Comando heroku open


Implementa tus cambios 1a3o14


Si por alguna razon tienes que cambiar algo en tu aplicacion, ya sea algo de CSS, o HTML sigas estos pasos: Realice algunos cambios en el código que acaba de clonar e impleméntelos en Heroku usando Git.

$ git add .
$ git commit -am "lo que quieras colocar para saber que cambios has hecho..etc"
$ git push heroku master


Opcional: Has desplegado tu código en Heroku, y especificado el tipo de proceso en un Procfile (nosotros elegimos tipo de proceso web). Ahora podemos decirle a Heroku que inicie este proceso web. Para hacerlo, ejecuta el siguiente comando:

$ heroku ps:scale web=1

Este comando le dice a Heroku que ejecute solamente una instancia de nuestro proceso web. Ya que nuestra aplicación de blog es bastante simple, no necesitamos demasiada potencia y por tanto está bien ejecutar solamente un proceso. Es posible pedirle a Heroku que ejecute más procesos (por cierto, Heroku le llama a estos procesos "Dynos" así que no te sorprendas si ves ese nombre) pero entonces dejaría de ser gratuito.


Ahora podemos visitar la aplicación en nuestro navegador con heroku open.


Compartir

Mi nombre es Alexander fundador y CEO, y me gusta llamarme un Geek. Amo la informática, tecnología y todo lo que está relacionado con ella. Inicié este sitio con la intención de compartir conocimientos como cursos en línea, tutoriales y videotutoriales. Estoy muy entusiasmado con la información que he descubierto y compartido hasta el momento. La verdad es que lo he hecho con el mayor de los gustos. Así es, soy un Geek con una visión para compartir conocimiento. Leer mas...