Este blog documenta los pasos necesarios para implementar un sitio web escrito en Python con el marco Flask en un dominio personalizado usando Heroku y NameCheap .
Flask es un micromarco que nos permite usar Python en el back-end para interactuar con nuestro código de front-end en HTML/CSS o Javascript para crear sitios web. La gente también usa otros frameworks como Django para este propósito, pero mi favorito es Flask porque es fácil comenzar con él.
Se puede crear un pequeño sitio web de Flask creando un nuevo repositorio, creando un archivo Python como este :
# app.py from flask import Flask app = Flask(__name__) @app.route("/") def hola(): return "¡Hola mundo!"si __nombre__ == "__main__" : app.run(puerto=5000)
Una aplicación típica de Flask tiene carpetas estáticas para todos los archivos CSS y JS, así como imágenes, etc. y una carpeta de plantillas para archivos HTML. No voy a entrar en muchos detalles aquí, pero se puede encontrar información fantástica sobre esto en tutoriales por Miguel Grinberg.
Cuando se ejecuta el archivo anterior python app.py
abre el sitio web localmente con “Hola ¡Mundo! “Escrito en HTML.
¿Cómo implementamos este sitio web en un dominio personalizado para que todos puedan verlo?
1. Cree una cuenta Heroku
Vaya al sitio web Heroku y regístrese para obtener una cuenta. Nos permitirá implementar el sitio web en un dominio que termina con herokuapp.com
. Usaremos este sitio web y lo desplegaremos a un dominio personalizado.
Podríamos haber utilizado Amazon Web Services para implementar el sitio web, pero me parece mucho más complejo que usar una solución como Heroku.
AWS es infraestructura-como-servicio (IaaS) y Heroku es plataforma-como-servicio (PaaS). Debido a esto, no debemos preocuparnos por los detalles exactos de la infraestructura con Heroku. Eso es lo que hace que sea más fácil de usar.
Ahora, vaya a este enlace y descargue heroku para la línea de comandos. También puede usar brew install heroku/brew/heroku
para instalarla en su máquina. A continuación, ejecute el inicio de sesión de Heroku para ingresar sus credenciales.
2. Implemente su aplicación en Heroku
a) Haga un archivo Proc
Para implementar su aplicación en Heroku, primero cree un archivo Proc y guárdelo en la misma carpeta que app.py. Tenga en cuenta que el Procfile no tiene ninguna extensión como txt, etc.
Este Procfile tendrá el contenidoweb:gunicorn app:app
, esta declaración permitirá a Heroku ejecutar gunicorn como servidor web para esta aplicación. Asegúrate de que tienes gunicorn instalado en tu entorno virtual.
b) Configúralos.txt:
Además, usa pip freeze> Requirements.txt
para escribir todos los requisitos de este proyecto en un expediente. Heroku usará esto para instalar todos los paquetes necesarios en la nube para ejecutar su aplicación.
c) [Optional] Haga runtime.txt:
Si desea especificar qué versión de Python debe usarse en el nube para ejecutar su aplicación por Heroku, solo mencione en este archivo como python-3.6.6.
d) Implementar en Heroku:
Ejecute heroku create
donde es el nombre de su gusto Si el nombre de su aplicación es calm-river, Heroku desplegará su sitio web en calm-river.herokuapp.com.
Asegúrate de que git esté instalado en tu línea de comando.
Ejecuta git init para inicializar tu carpeta actual como un repositorio de git. A continuación, ejecute git add.
y luegogit commit -m "first commit"
para enviar todos sus archivos a git.
Finalmente ejecute git push heroku master
para implementar su aplicación en Heroku ~
Si todo va bien, puede acceder a su sitio web en herokuapp.com
3. Enlace a un dominio personalizado en Heroku
A continuación, necesitaremos comprar un dominio personalizado de NameCheap o GoDaddy. Digamos que compró el dominio, example.com
Luego, ejecute dominios heroku: agregue www.example.com para agregar este dominio personalizado a su aplicación Heroku. Le dará un tipo de destino DNS y un nombre de destino DNS.
Este tipo de destino debe ser CNAME. Necesitamos vincular este registro CNAME a la consola de configuración de su dominio en NameCheap o GoDaddy.
4. Agregue el registro CNAME a su dominio personalizado
Vaya a la consola de configuración de Namecheap, y vaya a DNS avanzado. Agregue el registro CNAME a los destinos del Host con el tipo CNAME y el Host www y el valor es el nombre del destino DNS que recibió cuando agregó los dominios a Heroku.
5. Agregue el registro de redireccionamiento de URL a su dominio personalizado
Habiendo agregado el registro CNAME, agregue el registro de redireccionamiento de URL con el host siendo @ y el valor siendo http://www.example.com con la opción Sin máscara.
¡Permita hasta 30 minutos para que estas configuraciones se propaguen, y su sitio web debe estar activo en su dominio personalizado! Espero que estos pasos hayan sido útiles en su búsqueda para compartir su trabajo con el mundo.
Más detalles se pueden encontrar en el sitio web de Heroku en estos pasos.