Este es el tercer, y ultimo, artículo en una serie de tres que muestran cómo disponer de una aplicación sencilla de Flask en PyuthonAnywhere.
- Hola Mundo en PythonAnywhere con Flask
- PythonAnywhere subiendo una aplicación Flask desde GitHub
- Flask en PythonAnywhere con despliegue continuo usando GitHub ← (es el post en el que estamos)
Cambiando nombres seguiremos los pasos de la entrada:
PythonAnywhere subiendo una aplicación Flask desde GitHub
Lo que haremos en este caso es comenzar con una cuenta nueva en PyhthonAnywhere denominada universo que nos permitirá desplegar la página web:
https://universo.pythonanywhere.com
El objetivo es emplear una cuenta gratuita de PythonAnywhere y desplegar una aplicación web en Flask manteniendo nuestro repositorio en GitHub, usando despliegue continuo.
El flujo de trabajo será el siguiente.
Visual Studio Code (local ) → GitHub → PythonAnywhere
Referencias
- Un artículo de Medium (el código del artículo contiene errores)
- Stackoverflow
Paso 1
Vamos a crear un nuevo repositorio en GitHub con un 'Hola mundo' en Flask.
Se llamará flaskanywhere.
https://github.com/financieras/flaskanywhere
Si al crear el repositorio no se indica que se añadirán los ficheros readme, licencia y gitignore, GitHub nos ofrece una pantalla con ayuda para comenzar a trabajar con git. En esa página vemos una serie de instrucciones de git para subir los archivos.
- Crear un nuevo repositorio en la línea de comandos.
echo "# flaskanywhere" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/financieras/flaskanywhere.git
git push -u origin main
- Enviar un repositorio existente desde la línea de comandos.
git remote add origin https://github.com/financieras/flaskanywhere.git
git branch -M main
git push -u origin main
Paso 2
Podemos "enviar" (push) nuestro código a GitHub, y luego "tirarlo" (pull) a PythonAnywhere, o enviarlo desde PythonAnywhere hacia GitHub.
En PythonAnywhere, usaremos una Consola Bash y así podremos acceder a git y clonar nuestro repositorio, pudiendo luego hacer push (enviar, empujar) y pull (tirar, traer).
Veamos el código que queremos subir a GitHub.
El archivo se llamará app.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from flask import Flask, request
from flask.wrappers import Response
import git
app = Flask(__name__)
@app.route('/git_update', methods=['POST'])
def git_update():
repo = git.Repo('./flaskanywhere')
origin = repo.remotes.origin
repo.create_head('main',
origin.refs.main).set_tracking_branch(origin.refs.main).checkout()
origin.pull()
return '', 200
@app.route('/')
def hello():
return '<h1>Hello from Flask</h1><p>Continuous Deployment.</p>'
repo = git.Repo('./
flaskanywhere
')
El archivo anterior app.py ha sido creado en VSCode y subido a GitHub. Para ello, cambiando los nombres necesarios, seguiremos los pasos de la entrada:
Paso 3
WSGI configuration file: /var/www/universo_pythonanywhere_com_wsgi.py
Vemos que la ruta (path) está correcta y que el nombre de la aplicación es app.
Clonamos nuestro repositorio desde una terminal Bash, desde PythonAnywhere
git clone https://github.com/financieras/flaskanywhere.git
Cambiamos la ruta Source code añadiendo al final flaskanywhere.Pulsando el botón verde de recarga y actualizando la página ya vemos los cambios.
Recarga automática
cat>post-merge
touch /var/www/universo_pythonanywhere_com_wsgi.py
Después de introducir este código en la consola pulsamos Control+C
Podemos consultar si se ha creado correctamente el archivo post-merge.
cat post-merge
chmod +x post-merge
No hay comentarios:
Publicar un comentario