{"id":73017,"date":"2024-01-16T18:28:08","date_gmt":"2024-01-16T17:28:08","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=73017&#038;preview=true&#038;preview_id=73017"},"modified":"2024-01-24T13:14:14","modified_gmt":"2024-01-24T12:14:14","slug":"aplicacion-python-flask","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/","title":{"rendered":"Construye y Despliega una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/es\/secciones\/python\/\">Python<\/a> es uno de los <a href=\"https:\/\/kinsta.com\/es\/secciones\/lenguajes-desarrollo-web\/\">lenguajes de desarrollo<\/a> m\u00e1s populares. Su sintaxis sencilla y sus bajas barreras de entrada lo convierten en un buen candidato para los programadores novatos que esperan hacerse un hueco en el panorama del desarrollo de software.<\/p>\n<p>Una gran cantidad de frameworks y bibliotecas facilitan la puesta en marcha de una aplicaci\u00f3n Python. Entre ellos est\u00e1n <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewpython-examples#django\">Django<\/a>, <a href=\"https:\/\/kinsta.com\/es\/blog\/fastapi\/\">FastAPI<\/a> y <a href=\"https:\/\/kinsta.com\/es\/blog\/flask-vs-django\/#what-is-flask\">Flask<\/a>. El framework Flask atrae a los desarrolladores de Python porque permite crear prototipos y personalizarlos f\u00e1cilmente.<\/p>\n<p>Este art\u00edculo pr\u00e1ctico muestra c\u00f3mo desarrollar una sencilla aplicaci\u00f3n Python conectada a una base de datos utilizando Flask.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Aplicaciones Python M\u00e1s F\u00e1ciles con Flask<\/h2>\n<p>Desarrollado en 2010, <a href=\"https:\/\/flask.palletsprojects.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Flask<\/a> es muy adecuado para desarrollar aplicaciones web Python gracias a su facilidad de uso y flexibilidad. Su arquitectura simplificada se centra en proporcionar lo b\u00e1sico, al tiempo que facilita la inclusi\u00f3n de bibliotecas para la funcionalidad que necesites. Este enfoque hace que Flask sea ideal para muchos proyectos, desde aplicaciones sencillas hasta sistemas complejos.<\/p>\n<p>Flask ofrece varias herramientas y funcionalidades para soportar el desarrollo de aplicaciones web, entre las que se incluyen:<\/p>\n<ul>\n<li>Bibliotecas y herramientas para gestionar peticiones y respuestas HTTP<\/li>\n<li>La capacidad de dirigir peticiones a funciones designadas<\/li>\n<li>Soporte para plantillas de renderizado<\/li>\n<li>Soporte para bases de datos<\/li>\n<li>Sistemas de autenticaci\u00f3n y autorizaci\u00f3n<\/li>\n<\/ul>\n<h2>C\u00f3mo Crear tu Aplicaci\u00f3n Python con Flask<\/h2>\n<p>Puedes explorar las ventajas de utilizar Flask para el desarrollo de aplicaciones web <a href=\"https:\/\/kinsta.com\/es\/blog\/tutoriales-python\/\">creando una aplicaci\u00f3n web en Python<\/a> utilizando Flask. A continuaci\u00f3n, puedes crear y desplegar la aplicaci\u00f3n utilizando el servicio de <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Alojamiento de Aplicaciones Web<\/a> de Kinsta y conectarla a una <a href=\"https:\/\/sevalla.com\/database-hosting\/\">Base de Datos Administrada<\/a> en la plataforma Kinsta.<\/p>\n<h3>Requisitos previos de la aplicaci\u00f3n Python con Flask<\/h3>\n<p>Para seguir este tutorial, necesitar\u00e1s<\/p>\n<ul>\n<li><a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noopener noreferrer\">Python<\/a> versi\u00f3n 3 o superior<\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/downloads\/installer\/\" target=\"_blank\" rel=\"noopener noreferrer\">MySQL Workbench<\/a><\/li>\n<li>Los paquetes <a href=\"https:\/\/pip.pypa.io\/en\/stable\/installation\/\" target=\"_blank\" rel=\"noopener noreferrer\">pip<\/a> y <a href=\"https:\/\/packaging.python.org\/en\/latest\/guides\/installing-using-pip-and-virtual-environments\/#installing-virtualenv\" target=\"_blank\" rel=\"noopener noreferrer\">virtualenv<\/a> de Python instalados<\/li>\n<li>Un editor de c\u00f3digo<\/li>\n<li>Una cuenta en <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> o <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a> para alojar tu repositorio Git<\/li>\n<li>Una cuenta <a href=\"https:\/\/kinsta.com\/es\/suscripcion\/?product_type=app-db\">MyKinsta<\/a> (registro gratuito) para servir la aplicaci\u00f3n<\/li>\n<\/ul>\n<h3>Instalaci\u00f3n de Flask para Python<\/h3>\n<p>Ve a tu terminal (Linux o macOS) o S\u00edmbolo del Sistema (Windows). Empieza creando un directorio llamado <strong>flask_demo<\/strong>.<\/p>\n<p>Cambia al nuevo directorio y crea un entorno virtual Python utilizando el comando <code>python3 -m venv venv<\/code>. En este caso, tambi\u00e9n utilizaremos <strong>venv<\/strong> como nombre para el directorio que soportar\u00e1 el entorno virtual.<\/p>\n<p>Activa el entorno virtual utilizando uno de estos comandos:<\/p>\n<ul>\n<li><code>venv\\Scripts\\activate<\/code> en Windows<\/li>\n<li><code>source venv\/bin\/activate<\/code> en Linux o macOS<\/li>\n<\/ul>\n<p>Ahora, instala Flask utilizando <strong>pip<\/strong> ejecutando <code>pip install flask<\/code>.<\/p>\n<p>El trabajo realizado hasta ahora en tu terminal deber\u00eda tener este aspecto:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-virtual-environment-installing-flask.png\" alt=\"Salida del terminal durante la creaci\u00f3n de un entorno virtual Python y la instalaci\u00f3n de Flask.\" width=\"960\" height=\"556\"><figcaption class=\"wp-caption-text\">Creando la base de una aplicaci\u00f3n Python Flask en la terminal.<\/figcaption><\/figure>\n<h3>Crear una Aplicaci\u00f3n Base<\/h3>\n<p>A continuaci\u00f3n, crea la aplicaci\u00f3n base y revisa su funcionalidad mostrando contenido al navegador.<\/p>\n<p>En el directorio <strong>flask_demo<\/strong>, crea un archivo llamado <strong>demo.py<\/strong> y a\u00f1ade el siguiente c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">from flask import Flask\n\napp = Flask(__name__)\n\n# Routes\n@app.route('\/')\ndef index():\n    return \"Happy Coding!\"\n\nif __name__ == '__main__':\n    app.run(debug=True)<\/code><\/pre>\n<p>Este c\u00f3digo importa Flask desde el m\u00f3dulo <code>flask<\/code> y crea una instancia del mismo llamada <code>app<\/code>. A continuaci\u00f3n, el c\u00f3digo crea una ruta que devuelve el texto \u00abHappy Coding!\u00bb (\u00a1Feliz Programaci\u00f3n!) cuando los usuarios visitan la aplicaci\u00f3n en un navegador. Por \u00faltimo, ejecuta el servidor de desarrollo una vez que se inicia el script.<\/p>\n<p>Inicia la aplicaci\u00f3n ejecutando <code>flask --app demo run<\/code> en el terminal. La bandera <code>--app<\/code> especifica la ubicaci\u00f3n de la aplicaci\u00f3n que ejecutar\u00e1 \u2014 en este caso, el archivo <strong>demo.py<\/strong>.<\/p>\n<h3>A\u00f1adir Plantillas a tu Aplicaci\u00f3n Python Flask<\/h3>\n<p>A\u00f1adir plantillas a tu aplicaci\u00f3n reforzar\u00e1 tu contenido. Primero, crea un directorio llamado <strong>templates<\/strong> en la ra\u00edz de tu aplicaci\u00f3n. A continuaci\u00f3n, entra en el directorio <strong>templates<\/strong> y crea un archivo llamado <strong>index.html<\/strong> que contenga el siguiente c\u00f3digo HTML:<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;HomePage&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h3&gt;Flask Demo Application&lt;\/h3&gt;\n    &lt;p&gt;My name is John Doe - learning about Application Deployment!&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>En <strong>demo.py<\/strong>, importa <strong>render_template<\/strong> del m\u00f3dulo flask y renderiza la plantilla <strong>index.html<\/strong> en la funci\u00f3n de la ruta de esta forma:<\/p>\n<pre><code class=\"language-python\">from flask import Flask, <strong>render_template<\/strong>\n\napp = Flask(__name__)\n\n# Routes\n@app.route('\/')\ndef index():\n    return render_template('index.html')\n\nif __name__ == '__main__':\n    app.run(debug=True)<\/code><\/pre>\n<p>A continuaci\u00f3n, sirve tu aplicaci\u00f3n ejecutando <code>flask --app demo run<\/code> en tu entorno local. Utiliza la direcci\u00f3n local indicada en el terminal para lanzar la aplicaci\u00f3n en tu navegador. Deber\u00edas ver algo como esto:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-basic-application-in-browser.png\" alt=\"Captura de pantalla de un navegador web que muestra la fase inicial de la aplicaci\u00f3n Flask.\" width=\"960\" height=\"441\"><figcaption class=\"wp-caption-text\">Los inicios de una aplicaci\u00f3n Python Flask en un navegador web.<\/figcaption><\/figure>\n<h3>Conectar Tu Aplicaci\u00f3n Flask a una Base de Datos Local<\/h3>\n<p>Crear\u00e1s una conexi\u00f3n a una base de datos local \u2014 MySQL \u2014 que almacene el contenido de la aplicaci\u00f3n.<\/p>\n<p>Para conectar tu aplicaci\u00f3n Flask a MySQL, instala lo siguiente:<\/p>\n<ul>\n<li><strong>flask_mysqldb<\/strong>, el conector MySQL para Flask, utilizando <code>pip install flask_mysqldb<\/code><\/li>\n<li><strong>Python-dotenv<\/strong>, para leer variables de entorno, utilizando <code>pip install python-dotenv<\/code><\/li>\n<li>El conector MySQL de Python, utilizando <code>pip install mysql-connector-python<\/code><\/li>\n<li>La dependencia MySQL, utilizando <code>pip install mysqlclient<\/code><\/li>\n<\/ul>\n<p>Dir\u00edgete a MySQL Workbench para crear una base de datos. Aseg\u00farate de a\u00f1adir un usuario de base de datos con permisos para acceder a la base de datos y crear tablas.<\/p>\n<p>Crea un archivo <strong>.env<\/strong> en el directorio ra\u00edz de tu aplicaci\u00f3n para guardar los detalles de conexi\u00f3n a la base de datos. A\u00f1adir\u00edas las credenciales de tu usuario de base de datos y el nombre de la base de datos a esta plantilla:<\/p>\n<pre><code class=\"language-makefile\">DB_HOST=\"localhost\"\nDB_USER=\"your-db-user\"\nDB_PASSWORD=\"your-db-password\"\nDB_NAME=\"your-db-name\"<\/code><\/pre>\n<p>En un script<strong> demo.py<\/strong> revisado, ahora importaremos el conector MySQL y utilizaremos <strong>Python-dotenv<\/strong> para leer las claves de las variables de entorno en el archivo .<strong>env<\/strong>. Este nuevo script <strong>demo.py<\/strong> tambi\u00e9n comprueba la existencia de una tabla llamada <strong>persons<\/strong> en la base de datos y la crear\u00e1 y rellenar\u00e1 si no existe.<\/p>\n<pre><code class=\"language-python\">import os\nfrom flask import Flask, render_template\nfrom flask_mysqldb import MySQL\n\nfrom dotenv import load_dotenv\nload_dotenv()\n\napp = Flask(__name__)\n\napp.config['MYSQL_HOST'] = os.getenv(\"DB_HOST\")\napp.config['MYSQL_USER'] = os.getenv(\"DB_USER\")\napp.config['MYSQL_PASSWORD'] = os.getenv(\"DB_PASSWORD\")\napp.config['MYSQL_DB'] = os.getenv(\"DB_NAME\")\n\nmysql = MySQL(app)\n\n@app.route('\/')\ndef index():\n    cursor = mysql.connection.cursor()\n\n    cursor.execute(\"SHOW TABLES LIKE 'persons'\")\n    result = cursor.fetchone()\n\n    if not result:\n        cursor.execute(''' CREATE TABLE persons (id INTEGER, firstname VARCHAR(20), lastname VARCHAR(20)) ''')\n        cursor.execute(''' INSERT INTO persons VALUES(1, 'John', 'Doe') ''')\n        cursor.execute(''' INSERT INTO persons VALUES(2, 'Milly', 'Winfrerey') ''')\n        mysql.connection.commit()\n\n    cursor.execute('SELECT * FROM persons')\n    entry = cursor.fetchall()\n    cursor.close()\n    return render_template('index.html', entry=entry)<\/code><\/pre>\n<p>Despu\u00e9s de instanciar Flask, el c\u00f3digo anterior utiliza variables de entorno para capturar los atributos de la base de datos del archivo <strong>.env<\/strong> en la ra\u00edz de tu aplicaci\u00f3n<\/p>\n<p>A continuaci\u00f3n, el c\u00f3digo instancia MySQL y lo asocia a Flask. Crea un objeto cursor en la ruta <code>index<\/code>. A continuaci\u00f3n, el c\u00f3digo busca una tabla llamada <strong>persons<\/strong>\u00a0en la base de datos. Si no la encuentra, la crea con los atributos <code>id<\/code>, <code>firstname<\/code>, y <code>lastname<\/code> e inserta dos filas de datos.<\/p>\n<p>Las tres l\u00edneas siguientes ejecutan un comando SQL para seleccionar todas las filas de la tabla <strong>persons<\/strong> y obtener los resultados. El objeto cursor se cierra, y los resultados de la consulta se pasan como la variable de contexto <code>entry<\/code> para su representaci\u00f3n con la plantilla.<\/p>\n<p>Aqu\u00ed tienes un archivo de plantilla <strong>index.html<\/strong> revisado que puede procesar los resultados de la consulta a la base de datos:<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;HomePage&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h3&gt;Flask Demo Application&lt;\/h3&gt;\n    {% for e in entry %}\n        &lt;p&gt;My name is {{e[1]}} {{e[2]}} - learning about Application Deployment!&lt;\/p&gt;\n    {% endfor %}\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Ejecuta la aplicaci\u00f3n y, a continuaci\u00f3n, vuelve a MySQL Workbench para comprobar los datos. Deber\u00eda tener el siguiente aspecto:<\/p>\n<figure style=\"width: 900px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/flask-application-data-queried-in-mysql-workbench.png\" alt=\"Captura de pantalla de los resultados de la consulta en MySQL Workbench.\" width=\"900\" height=\"172\"><figcaption class=\"wp-caption-text\">Resultados de la consulta de la tabla <strong>persons<\/strong> en MySQL Workbench.<\/figcaption><\/figure>\n<p>Al consultar la tabla, se devuelven las dos entradas generadas por la aplicaci\u00f3n. Tu aplicaci\u00f3n muestra ahora en el navegador el siguiente contenido derivado de la base de datos:<\/p>\n<figure id=\"attachment_172615\" aria-describedby=\"caption-attachment-172615\" style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-172615 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-database-application-in-browser.png\" alt=\"Captura de pantalla que muestra el contenido generado a partir de la base de datos.\" width=\"960\" height=\"441\"><figcaption id=\"caption-attachment-172615\" class=\"wp-caption-text\">Contenido generado por la base de datos en el navegador.<\/figcaption><\/figure>\n<h2>C\u00f3mo Desplegar Tu Aplicaci\u00f3n Python Flask en Kinsta<\/h2>\n<p>Ahora que tu aplicaci\u00f3n est\u00e1 funcionando localmente, puedes hacerla visible al mundo aloj\u00e1ndola en Kinsta. Puedes combinar los servicios de <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Alojamiento de Aplicaciones Web<\/a> y <a href=\"https:\/\/sevalla.com\/database-hosting\/\">Alojamiento de Bases de Datos Administradas<\/a> de Kinsta para dar vida a esta aplicaci\u00f3n (y a tus futuros esfuerzos) en la nube. Y puedes <a href=\"https:\/\/kinsta.com\/es\/suscripcion\/?product_type=app-db\">probar ambos de forma gratuita<\/a>.<\/p>\n<h3>Preparar Tu Proyecto Python para el Despliegue<\/h3>\n<p>La plataforma de Alojamiento de Aplicaciones Web de Kinsta despliega tu c\u00f3digo desde tu host Git favorito. Tu siguiente paso es configurar el entorno de tu aplicaci\u00f3n para que admita esa v\u00eda y permitir que Kinsta despliegue tu aplicaci\u00f3n con todas sus dependencias necesarias.<\/p>\n<p>Empieza creando un nuevo directorio dentro de la ra\u00edz de tu proyecto <strong>flask_demo<\/strong>. Llam\u00e9moslo <strong>myapp.<\/strong> A continuaci\u00f3n, mueve el directorio <strong>templates<\/strong> y el archivo <strong>demo.py<\/strong> a <strong>myapp<\/strong>.<\/p>\n<p>Dentro del directorio <strong>myapp<\/strong>, crea un archivo <strong>wsgi.py<\/strong> con el siguiente contenido:<\/p>\n<pre><code class=\"language-python\">from myapp.demo import app as application\n\nif __name__ == \"__main__\":\n    application.run(debug=True)<\/code><\/pre>\n<p>El proceso de construcci\u00f3n en Kinsta tambi\u00e9n utilizar\u00e1 <strong>pip<\/strong> para generar tu aplicaci\u00f3n. Puedes pasar una lista de las dependencias de tu aplicaci\u00f3n a <strong>pip<\/strong> en la parte de producci\u00f3n utilizando un archivo <strong>requirements.txt<\/strong> en el directorio ra\u00edz del proyecto.<\/p>\n<p>Mientras sigues trabajando en el entorno virtual <strong>venv<\/strong> y dentro del directorio ra\u00edz <strong>flask_demo<\/strong>, puedes generar un archivo <strong>requirements.txt<\/strong> espec\u00edfico para tu proyecto con el siguiente comando:<\/p>\n<pre><code class=\"language-bash\">pip freeze &gt; requirements.txt<\/code><\/pre>\n<p>El contenido del archivo de texto resultante tendr\u00e1 el siguiente aspecto:<\/p>\n<pre><code class=\"language-makefile\">blinker==1.7.0\nclick==8.1.7\nFlask==3.0.0\nFlask-MySQLdb==2.0.0\nitsdangerous==2.1.2\nJinja2==3.1.2\nMarkupSafe==2.1.3\nmysql-connector-python==8.2.0\nmysqlclient==2.2.1\nprotobuf==4.21.12\npython-dotenv==1.0.0\nWerkzeug==3.0.1<\/code><\/pre>\n<p>No enviar\u00e1s el archivo .<strong>env<\/strong> con sus secretos de base de datos al servidor de producci\u00f3n. Como no necesitar\u00e1s la biblioteca <code>python-dotenv<\/code> para leer .<strong>env<\/strong> en producci\u00f3n, puedes eliminar su referencia de <strong>requirements.txt<\/strong> y eliminar (o comentar) estas l\u00edneas en <strong>demo.py<\/strong>:<\/p>\n<pre><code class=\"language-python\">from dotenv import load_dotenv\nload_dotenv()<\/code><\/pre>\n<h4>A\u00f1adir un Servidor HTTP WSGI Python al Proyecto<\/h4>\n<p>Algo que falta en los requisitos anteriores es una forma de servir la aplicaci\u00f3n a trav\u00e9s de HTTP en un entorno de producci\u00f3n. El servidor de desarrollo utilizado en tu m\u00e1quina local no servir\u00e1. Para este proyecto, utilizar\u00e1s el paquete Web Server Gateway Interface (WSGI) <a href=\"https:\/\/gunicorn.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Gunicorn<\/a> entre la aplicaci\u00f3n y los servidores web <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-nginx\/\">Nginx<\/a> de Kinsta.<\/p>\n<p>Puedes a\u00f1adir un requisito de Gunicorn a tu proyecto instal\u00e1ndolo en tu entorno virtual de la siguiente manera:<\/p>\n<pre><code class=\"language-bash\">pip install gunicorn<\/code><\/pre>\n<p>Una vez instalado Gunicorn, utiliza <strong>pip<\/strong> para volver a generar <strong>requirements.txt<\/strong>.<\/p>\n<p>Una alternativa a la instalaci\u00f3n local de Gunicorn es editar <strong>requirements.txt<\/strong> y a\u00f1adir simplemente una entrada como \u00e9sta:<\/p>\n<pre><code class=\"language-makefile\">gunicorn==21.2.0<\/code><\/pre>\n<p>Para concluir el trabajo preliminar para el servidor WSGI, crea un archivo en el directorio ra\u00edz del proyecto llamado <strong>Procfile<\/strong> y a\u00f1ade la siguiente l\u00ednea:<\/p>\n<pre><code class=\"language-makefile\">web: gunicorn myapp.wsgi<\/code><\/pre>\n<p>Esta ser\u00e1 la base del comando de inicio de tu aplicaci\u00f3n en producci\u00f3n.<\/p>\n<h4>Prepara Tu Proyecto para Git<\/h4>\n<p>La estructura de directorios revisada est\u00e1 lista para su despliegue en Kinsta, pero no querr\u00e1s que todos esos archivos vayan a producci\u00f3n. Crea un archivo <strong>.gitignore<\/strong> en la ra\u00edz del proyecto con un contenido como este<\/p>\n<pre><code class=\"language-makefile\">\/venv\n.env<\/code><\/pre>\n<p>Esto evitar\u00e1 que los archivos del directorio <strong>venv<\/strong> y los secretos de la base de datos local en <strong>.env<\/strong> se suban a tu host Git.<\/p>\n<p>Ahora puedes iniciar tu entorno Git local y enviar el c\u00f3digo a tu servidor Git utilizando tus herramientas preferidas.<\/p>\n<h3>Desplegar Tu Aplicaci\u00f3n Python Flask en Kinsta<\/h3>\n<p>Accede a tu panel MyKinsta y aseg\u00farate de que has autorizado a Kinsta para acceder a tu <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapplication-getting-started#git-service-providers\">proveedor de servicios Git<\/a>. Sigue los pasos para <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-applicationadd-an-application\">a\u00f1adir una aplicaci\u00f3n<\/a>, seleccionando el repositorio y la rama en el host Git donde Kinsta encontrar\u00e1 el c\u00f3digo de este proyecto Flask.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Elegir\u00e1s uno de los muchos centros de datos disponibles en todo el mundo para el alojamiento de aplicaciones en Kinsta. Toma nota de tu selecci\u00f3n porque deber\u00e1s utilizar el mismo cuando crees tu base de datos.<\/p>\n<\/aside>\n\n<p>Cuando configures el entorno de construcci\u00f3n, selecciona <strong>Utilizar Buildpacks para configurar la imagen del contenedor<\/strong>, pero deja el resto de ajustes en sus valores predeterminados. (No proporcionar\u00e1s un <strong>comando de Inicio<\/strong> porque eso ya est\u00e1 definido en tu <strong>Procfile<\/strong>)<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-build-environment.png\" alt=\"Captura de pantalla de la interfaz MyKinsta para configurar un entorno de construcci\u00f3n.\" width=\"960\" height=\"856\"><figcaption class=\"wp-caption-text\">Elegir Buildpacks para configurar la imagen contenedora de la aplicaci\u00f3n.<\/figcaption><\/figure>\n<p>Despu\u00e9s de revisar la informaci\u00f3n de facturaci\u00f3n (\u00a1todav\u00eda puedes empezar gratis!), haz clic en el bot\u00f3n <strong>Construir ahora<\/strong> y observa el progreso en el visor de registros:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-deployment-progress.png\" alt=\"Captura de pantalla de las entradas de registro del despliegue de una aplicaci\u00f3n Python Flask.\" width=\"960\" height=\"617\"><figcaption class=\"wp-caption-text\">Entradas de registro para el despliegue de tu aplicaci\u00f3n Python Flask.<\/figcaption><\/figure>\n<h3>A\u00f1adir una Base de Datos a tu Aplicaci\u00f3n Python Flask<\/h3>\n<p>Kinsta tiene cuatro opciones de bases de datos administradas para satisfacer tus necesidades y los requisitos de tu aplicaci\u00f3n: Redis, PostgreSQL, MariaDB y MySQL. Para este tutorial, nos hemos basado en el servicio de base de datos MySQL.<\/p>\n<p>Sigue las instrucciones oficiales para <a href=\"https:\/\/docs.sevalla.com\/databases\/get-started\/add-a-database\">a\u00f1adir una base de datos<\/a>, recordando seleccionar el mismo centro de datos que elegiste para tu aplicaci\u00f3n Flask.<\/p>\n<p>Tras crear la base de datos, selecci\u00f3nala de la lista de tus servidores de bases de datos disponibles y despl\u00e1zate hasta la secci\u00f3n <strong>Conexiones internas<\/strong> \/ <strong>Aplicaciones permitidas<\/strong> de la pesta\u00f1a <strong>Visi\u00f3n general<\/strong>. Cuando pulses el bot\u00f3n <strong>A\u00f1adir conexi\u00f3n<\/strong>, el servicio de tu aplicaci\u00f3n Flask en el mismo centro de datos estar\u00e1 disponible para seleccionarlo:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-database-add-connection.png\" alt=\"Captura de pantalla del cuadro de di\u00e1logo para a\u00f1adir una conexi\u00f3n de base de datos interna en MyKinsta.\" width=\"960\" height=\"466\"><figcaption class=\"wp-caption-text\">A\u00f1adir una conexi\u00f3n interna a una aplicaci\u00f3n despu\u00e9s de crear una base de datos.<\/figcaption><\/figure>\n<p>Haz clic en la casilla <strong>A\u00f1adir variables de entorno a la aplicaci\u00f3n<\/strong> antes de crear la nueva conexi\u00f3n. Esto muestra las variables de entorno que llevar\u00e1n los secretos de tu base de datos \u2014 todo ello gestionado de forma segura sin necesidad del archivo <strong>.env<\/strong>.<\/p>\n<figure style=\"width: 959px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-database-add-variables.png\" alt=\"Captura de pantalla del cuadro de di\u00e1logo para a\u00f1adir variables de entorno para las credenciales de la base de datos.\" width=\"959\" height=\"854\"><figcaption class=\"wp-caption-text\">A\u00f1adir variables de entorno para una conexi\u00f3n interna a tu base de datos.<\/figcaption><\/figure>\n<p>En la parte inferior del cuadro de di\u00e1logo anterior, las opciones <strong>Disponible durante el tiempo de ejecuci\u00f3n<\/strong> y<strong> Disponible durante el proceso de construcci\u00f3n<\/strong> estar\u00e1n activadas por defecto, y eso es exactamente lo que quieres.<\/p>\n<p>Tras hacer clic finalmente en el bot\u00f3n <strong>A\u00f1adir conexi\u00f3n<\/strong>, las variables de entorno necesarias para el acceso a la base de datos se aplicar\u00e1n a la <strong>Configuraci\u00f3n <\/strong>de tu proyecto en el panel <strong>Aplicaciones<\/strong> de MyKinsta:<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-mykinsta-environment-variables.png\" alt=\"Captura de pantalla de un cuadro de di\u00e1logo de MyKinsta que muestra las variables de entorno pasadas desde la base de datos a una aplicaci\u00f3n.\" width=\"960\" height=\"382\"><figcaption class=\"wp-caption-text\">Variables de entorno de la base de datos pasadas a la aplicaci\u00f3n Python Flask.<\/figcaption><\/figure>\n<p>Ahora, incluso cuando reconstruyas tu aplicaci\u00f3n tras futuras mejoras, los datos de conexi\u00f3n a la base de datos persistir\u00e1n.<\/p>\n<figure style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-application-live-on-kinsta-platform.png\" alt=\"Captura de pantalla de la aplicaci\u00f3n Python Flask en funcionamiento en la plataforma Kinsta.\" width=\"960\" height=\"441\"><figcaption class=\"wp-caption-text\">La aplicaci\u00f3n Python Flask se encuentra en la plataforma Kinsta.<\/figcaption><\/figure>\n<p>\u00a1Enhorabuena! Acabas de crear una aplicaci\u00f3n Python Flask y la has desplegado en la plataforma Kinsta.<\/p>\n<h2>Resumen<\/h2>\n<p>El framework personalizable de Flask hace que crear una aplicaci\u00f3n Python sea mucho m\u00e1s sencillo. Utilizar Kinsta para desplegar una aplicaci\u00f3n Flask facilita a\u00fan m\u00e1s las cosas, acelerando el desarrollo y despliegue de aplicaciones.<\/p>\n<p>Aqu\u00ed hemos aprendido a crear una aplicaci\u00f3n sencilla conectada a una base de datos dentro de un entorno de desarrollo local y luego ponerla a disposici\u00f3n del resto del mundo en las plataformas de <a href=\"https:\/\/kinsta.com\/docs\/application-hosting\">Alojamiento de Aplicaciones Web<\/a> y <a href=\"https:\/\/kinsta.com\/docs\/database-hosting\">Alojamiento de Bases de Datos<\/a> de Kinsta.<\/p>\n<p>Explora qu\u00e9 m\u00e1s puedes construir en nuestra plataforma navegando por nuestras <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapp-quick-start\">Plantillas de Inicio R\u00e1pido<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python es uno de los lenguajes de desarrollo m\u00e1s populares. Su sintaxis sencilla y sus bajas barreras de entrada lo convierten en un buen candidato para &#8230;<\/p>\n","protected":false},"author":259,"featured_media":73018,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1320],"class_list":["post-73017","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Construir y Desplegar una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta<\/title>\n<meta name=\"description\" content=\"He aqu\u00ed c\u00f3mo desplegar una aplicaci\u00f3n Python Flask r\u00e1pidamente utilizando los servicios de alojamiento de aplicaciones y bases de datos de Kinsta.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construye y Despliega una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta\" \/>\n<meta property=\"og:description\" content=\"He aqu\u00ed c\u00f3mo desplegar una aplicaci\u00f3n Python Flask r\u00e1pidamente utilizando los servicios de alojamiento de aplicaciones y bases de datos de Kinsta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-16T17:28:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-24T12:14:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Steve Bonisteel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"He aqu\u00ed c\u00f3mo desplegar una aplicaci\u00f3n Python Flask r\u00e1pidamente utilizando los servicios de alojamiento de aplicaciones y bases de datos de Kinsta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Construye y Despliega una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta\",\"datePublished\":\"2024-01-16T17:28:08+00:00\",\"dateModified\":\"2024-01-24T12:14:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/\"},\"wordCount\":2437,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/\",\"name\":\"Construir y Desplegar una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png\",\"datePublished\":\"2024-01-16T17:28:08+00:00\",\"dateModified\":\"2024-01-24T12:14:14+00:00\",\"description\":\"He aqu\u00ed c\u00f3mo desplegar una aplicaci\u00f3n Python Flask r\u00e1pidamente utilizando los servicios de alojamiento de aplicaciones y bases de datos de Kinsta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png\",\"width\":1999,\"height\":1000},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Construye y Despliega una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"caption\":\"Steve Bonisteel\"},\"description\":\"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Construir y Desplegar una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta","description":"He aqu\u00ed c\u00f3mo desplegar una aplicaci\u00f3n Python Flask r\u00e1pidamente utilizando los servicios de alojamiento de aplicaciones y bases de datos de Kinsta.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/","og_locale":"es_ES","og_type":"article","og_title":"Construye y Despliega una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta","og_description":"He aqu\u00ed c\u00f3mo desplegar una aplicaci\u00f3n Python Flask r\u00e1pidamente utilizando los servicios de alojamiento de aplicaciones y bases de datos de Kinsta.","og_url":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2024-01-16T17:28:08+00:00","article_modified_time":"2024-01-24T12:14:14+00:00","og_image":[{"width":1999,"height":1000,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png","type":"image\/png"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"He aqu\u00ed c\u00f3mo desplegar una aplicaci\u00f3n Python Flask r\u00e1pidamente utilizando los servicios de alojamiento de aplicaciones y bases de datos de Kinsta.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Steve Bonisteel","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Construye y Despliega una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta","datePublished":"2024-01-16T17:28:08+00:00","dateModified":"2024-01-24T12:14:14+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/"},"wordCount":2437,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/","url":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/","name":"Construir y Desplegar una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png","datePublished":"2024-01-16T17:28:08+00:00","dateModified":"2024-01-24T12:14:14+00:00","description":"He aqu\u00ed c\u00f3mo desplegar una aplicaci\u00f3n Python Flask r\u00e1pidamente utilizando los servicios de alojamiento de aplicaciones y bases de datos de Kinsta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2024\/01\/python-flask-app.png","width":1999,"height":1000},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/aplicacion-python-flask\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/kinsta.com\/es\/secciones\/python\/"},{"@type":"ListItem","position":3,"name":"Construye y Despliega una Aplicaci\u00f3n Python en un Santiam\u00e9n con Flask y Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","caption":"Steve Bonisteel"},"description":"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.","url":"https:\/\/kinsta.com\/es\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=73017"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73017\/revisions"}],"predecessor-version":[{"id":73097,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/73017\/revisions\/73097"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/translations\/es"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/translations\/nl"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/translations\/jp"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/73017\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/73018"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=73017"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=73017"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=73017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}