{"id":75988,"date":"2024-01-16T18:33:50","date_gmt":"2024-01-16T17:33:50","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=75988&#038;preview=true&#038;preview_id=75988"},"modified":"2024-01-22T18:12:39","modified_gmt":"2024-01-22T17:12:39","slug":"applicazione-python-flask","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/","title":{"rendered":"Costruire e distribuire un&#8217;app Python in pochi secondi con Flask e Kinsta"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/it\/argomenti\/python\/\">Python<\/a> \u00e8 uno dei <a href=\"https:\/\/kinsta.com\/it\/argomenti\/linguaggi-sviluppo-web\/\">linguaggi di sviluppo<\/a> pi\u00f9 popolari. La sua sintassi semplice e le basse barriere all&#8217;ingresso lo rendono un buon candidato per i programmatori alle prime armi che sperano di farsi strada nel panorama dello sviluppo software.<\/p>\n<p>Una serie di framework e librerie rendono pi\u00f9 facile l&#8217;avvio di un&#8217;applicazione Python. Tra questi ci sono <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewpython-examples#django\">Django<\/a>, <a href=\"https:\/\/kinsta.com\/it\/blog\/fastapi\/\">FastAPI<\/a> e <a href=\"https:\/\/kinsta.com\/it\/blog\/flask-vs-django\/#what-is-flask\">Flask<\/a>. Il framework Flask attira gli sviluppatori Python per la facilit\u00e0 di prototipazione e personalizzazione.<\/p>\n<p>In questo articolo vedremo come sviluppare una semplice applicazione Python collegata al database utilizzando 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>Applicazioni Python pi\u00f9 facili con Flask<\/h2>\n<p>Sviluppato nel 2010, <a href=\"https:\/\/flask.palletsprojects.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Flask<\/a> \u00e8 adatto allo sviluppo di applicazioni web in Python grazie alla sua facilit\u00e0 d&#8217;uso e flessibilit\u00e0. La sua architettura snella si concentra sul fornire le basi e facilita l&#8217;aggiunta di librerie per le funzionalit\u00e0 necessarie. Questo approccio rende Flask ideale per molti progetti, da semplici applicazioni a sistemi complessi.<\/p>\n<p>Flask offre diversi strumenti e funzionalit\u00e0 per supportare lo sviluppo di applicazioni web, tra cui:<\/p>\n<ul>\n<li>Librerie e strumenti per gestire le richieste e le risposte HTTP<\/li>\n<li>La possibilit\u00e0 di indirizzare le richieste a funzioni designate<\/li>\n<li>Supporto per i template di rendering<\/li>\n<li>Supporto per i database<\/li>\n<li>Sistemi di autenticazione e autorizzazione<\/li>\n<\/ul>\n<h2>Come creare un&#8217;app Python Flask<\/h2>\n<p>Per esplorare i vantaggi dell&#8217;uso di Flask per lo sviluppo di applicazioni web, possiamo <a href=\"https:\/\/kinsta.com\/it\/blog\/tutorial-python\/\">creare un&#8217;applicazione web in Python<\/a> con Flask. In seguito, potremo costruire e distribuire l&#8217;applicazione utilizzando il servizio di <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hosting di Applicazioni web<\/a> di Kinsta e collegarla a un <a href=\"https:\/\/sevalla.com\/database-hosting\/\">database gestito<\/a> sulla piattaforma Kinsta.<\/p>\n<h3>Prerequisiti dell&#8217;applicazione Python Flask<\/h3>\n<p>Per seguire questo tutorial, \u00e8 necessario:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noopener noreferrer\">Python<\/a> versione 3 o superiore<\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/downloads\/installer\/\" target=\"_blank\" rel=\"noopener noreferrer\">MySQL Workbench<\/a><\/li>\n<li>I pacchetti <a href=\"https:\/\/pip.pypa.io\/en\/stable\/installation\/\" target=\"_blank\" rel=\"noopener noreferrer\">pip<\/a> e <a href=\"https:\/\/packaging.python.org\/en\/latest\/guides\/installing-using-pip-and-virtual-environments\/#installing-virtualenv\" target=\"_blank\" rel=\"noopener noreferrer\">virtualenv<\/a> di Python installati<\/li>\n<li>Un editor di codice<\/li>\n<li>Un account su <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> per ospitare un repository Git<\/li>\n<li>Un <a href=\"https:\/\/kinsta.com\/it\/registrazione\/?product_type=app-db\">account MyKinsta<\/a> (l&#8217;iscrizione \u00e8 gratuita) per servire l&#8217;applicazione<\/li>\n<\/ul>\n<h3>Installare Flask per Python<\/h3>\n<p>Andiamo al terminale (Linux o macOS) o al Prompt dei comandi (Windows). Iniziamo creando una cartella chiamata <strong>flask_demo<\/strong>.<\/p>\n<p>Passiamo alla nuova directory e creiamo un ambiente virtuale Python utilizzando il comando <code>python3 -m venv venv<\/code>. In questo caso, utilizzeremo anche <strong>venv<\/strong> come nome per la directory che supporter\u00e0 l&#8217;ambiente virtuale.<\/p>\n<p>Attiviamo l&#8217;ambiente virtuale utilizzando uno dei seguenti comandi:<\/p>\n<ul>\n<li><code>venvScriptsactivate<\/code> in Windows<\/li>\n<li><code>source venv\/bin\/activate<\/code> in Linux o macOS<\/li>\n<\/ul>\n<p>Ora, installiamo Flask utilizzando <strong>pip<\/strong> eseguendo <code>pip install flask<\/code>.<\/p>\n<p>Il lavoro svolto finora nel terminale dovrebbe assomigliare a questo:<\/p>\n<figure id=\"attachment_172621\" aria-describedby=\"caption-attachment-172621\" 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=\"Output del terminale durante la creazione di un ambiente virtuale Python e l'installazione di Flask.\" width=\"960\" height=\"556\"><figcaption id=\"caption-attachment-172621\" class=\"wp-caption-text\">Creazione delle basi di un&#8217;applicazione Python Flask nel terminale.<\/figcaption><\/figure>\n<h3>Creare un&#8217;applicazione di base<\/h3>\n<p>Successivamente, creiamo l&#8217;applicazione di base e verifichiamone la funzionalit\u00e0 renderizzando i contenuti nel browser.<\/p>\n<p>Nella directory <strong>flask_demo<\/strong>, creiamo un file chiamato <strong>demo.py<\/strong> e aggiungiamo il seguente codice:<\/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>Questo codice importa Flask dal modulo <code>flask<\/code> e ne crea un&#8217;istanza chiamata <code>app<\/code>. Il codice crea poi una route che restituisce un testo con la scritta &#8220;Happy Coding!&#8221; quando gli utenti visitano l&#8217;applicazione in un browser. Infine, esegue il server di sviluppo una volta avviato lo script.<\/p>\n<p>Avviamo l&#8217;applicazione eseguendo <code>flask --app demo run<\/code> nel terminale. Il flag <code>--app<\/code> specifica la posizione dell&#8217;applicazione che verr\u00e0 eseguita: in questo caso, il file <strong>demo.py<\/strong>.<\/p>\n<h3>Aggiungere template all&#8217;applicazione Python Flask<\/h3>\n<p>L&#8217;aggiunta di template all&#8217;applicazione migliorer\u00e0 i contenuti. Per prima cosa, creiamo una directory chiamata <strong>templates<\/strong> nella root dell&#8217;applicazione. Quindi, spostiamoci nella directory <strong>templates<\/strong> e creiamo un file chiamato <strong>index.html<\/strong> contenente il seguente codice 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>In <strong>demo.py<\/strong>, importa <strong>render_template<\/strong> dal modulo flask e renderizza il template <strong>index.html<\/strong> nella funzione route in questo modo:<\/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>Quindi, serviamo l&#8217;applicazione eseguendo <code>flask --app demo run<\/code> nell&#8217;ambiente locale. Usiamo l&#8217;indirizzo locale riportato nel terminale per lanciare l&#8217;applicazione nel browser. Dovremmo vedere qualcosa di simile a questo:<\/p>\n<figure id=\"attachment_172613\" aria-describedby=\"caption-attachment-172613\" 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=\"Schermata di un browser web che visualizza la fase iniziale dell'applicazione Flask.\" width=\"960\" height=\"441\"><figcaption id=\"caption-attachment-172613\" class=\"wp-caption-text\">Fase iniziale di un&#8217;applicazione Python Flask in un browser web.<\/figcaption><\/figure>\n<h3>Collegare l&#8217;app Flask a un database locale<\/h3>\n<p>Creeremo una connessione a un database locale &#8211; MySQL &#8211; che memorizza i contenuti dell&#8217;applicazione.<\/p>\n<p>Per collegare l&#8217;applicazione Flask a MySQL, installiamo quanto segue:<\/p>\n<ul>\n<li><strong>flask_mysqldb<\/strong>, il connettore MySQL per Flask, che utilizza <code>pip install flask_mysqldb<\/code><\/li>\n<li><strong>Python-dotenv<\/strong>, per la lettura delle variabili d&#8217;ambiente, utilizzando <code>pip install python-dotenv<\/code><\/li>\n<li>Il connettore MySQL di Python, utilizzando <code>pip install mysql-connector-python<\/code><\/li>\n<li>La dipendenza da MySQL, utilizzando <code>pip install mysqlclient<\/code><\/li>\n<\/ul>\n<p>Andiamo su MySQL Workbench per creare un database. Assicuriamoci di aggiungere un utente del database con i permessi per accedere al database e creare tabelle.<\/p>\n<p>Creiamo un file <strong>.env<\/strong> nella directory principale dell&#8217;applicazione per contenere i dettagli della connessione al database. A questo modello dovremo aggiungere le credenziali dell&#8217;utente del database e il nome del database:<\/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>In uno script <strong>demo.py<\/strong> modificato, ora importeremo il connettore MySQL e useremo <strong>Python-dotenv<\/strong> per leggere le chiavi delle variabili d&#8217;ambiente nel file <strong>.env<\/strong>. Questo nuovo script <strong>demo.py<\/strong> verifica anche l&#8217;esistenza di una tabella chiamata <strong>persone<\/strong> nel database e la crea e la popola se non esiste.<\/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>Dopo aver istanziato Flask, il codice precedente utilizza le variabili d&#8217;ambiente per catturare gli attributi del database dal file <strong>.env<\/strong> nella root dell&#8217;applicazione.<\/p>\n<p>Quindi, il codice istanzia MySQL e lo associa a Flask. Crea poi un oggetto cursore nel percorso <code>index<\/code>. Successivamente, il codice verifica la presenza di una tabella denominata <strong>persons<\/strong> nel database. Se non viene trovata, la crea con gli attributi <code>id<\/code>, <code>firstname<\/code> e <code>lastname<\/code> e inserisce due righe di dati.<\/p>\n<p>Le tre righe successive eseguono un comando SQL per selezionare tutte le righe della tabella <strong>persone<\/strong> e recuperare i risultati. L&#8217;oggetto cursore viene chiuso e i risultati della query vengono passati come variabile di contesto <code>entry<\/code> per essere resi con il modello.<\/p>\n<p>Ecco un file template <strong>index.html<\/strong> rivisto che pu\u00f2 elaborare i risultati della query del database:<\/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>Eseguiamo l&#8217;applicazione, poi torniamo a MySQL Workbench per controllare i dati. L&#8217;aspetto dovrebbe essere il seguente:<\/p>\n<figure id=\"attachment_172614\" aria-describedby=\"caption-attachment-172614\" 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=\"Schermata dei risultati della query in MySQL Workbench.\" width=\"900\" height=\"172\"><figcaption id=\"caption-attachment-172614\" class=\"wp-caption-text\">Risultati dell&#8217;interrogazione della tabella <strong>Persons<\/strong> in MySQL Workbench.<\/figcaption><\/figure>\n<p>Quando interroghiamo la tabella, vengono restituite le due voci generate dall&#8217;applicazione. Ora l&#8217;applicazione visualizza nel browser il seguente contenuto derivato dal database:<\/p>\n<figure id=\"attachment_172615\" aria-describedby=\"caption-attachment-172615\" style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-172615\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/python-flask-database-application-in-browser.png\" alt=\"Schermata che mostra il contenuto generato dal database.\" width=\"960\" height=\"441\"><figcaption id=\"caption-attachment-172615\" class=\"wp-caption-text\">Contenuti generati dal database nel browser.<\/figcaption><\/figure>\n<h2>Come distribuire l&#8217;applicazione Python Flask su Kinsta<\/h2>\n<p>Ora che l&#8217;applicazione \u00e8 attiva e funzionante a livello locale, possiamo renderla visibile al mondo ospitandola su Kinsta. Possiamo abbinare i servizi di <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hosting di Applicazioni Web<\/a> e <a href=\"https:\/\/sevalla.com\/database-hosting\/\">Hosting di Database gestito<\/a> di Kinsta per dare vita a questa applicazione (e ai nostri lavori futuri) nel cloud. E possiamo <a href=\"https:\/\/kinsta.com\/it\/registrazione\/?product_type=app-db\">provarli entrambi gratuitamente<\/a>.<\/p>\n<h3>Preparare il progetto Python per la distribuzione<\/h3>\n<p>La piattaforma di Hosting di Applicazioni Web di Kinsta distribuisce il codice dal nostro host Git preferito. Il passo successivo consiste nel configurare l&#8217;ambiente dell&#8217;applicazione per supportare questo percorso e permettere a Kinsta di distribuire l&#8217;applicazione con tutte le sue dipendenze necessarie.<\/p>\n<p>Iniziamo creando una nuova cartella nella root del progetto <strong>flask_demo<\/strong>. Chiamiamola <strong>myapp<\/strong>. Quindi spostiamo la cartella <strong>templates<\/strong> e il file <strong>demo.py<\/strong> in <strong>myapp<\/strong>.<\/p>\n<p>All&#8217;interno della cartella <strong>myapp<\/strong>, creiamo un file <strong>wsgi.py<\/strong> con il seguente contenuto:<\/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>Il processo di build di Kinsta utilizzer\u00e0 anche <strong>pip<\/strong> per generare l&#8217;applicazione. Possiamo passare un elenco delle dipendenze dell&#8217;applicazione a <strong>pip<\/strong> sul lato della produzione utilizzando un file <strong>requirements.txt<\/strong> nella directory principale del progetto.<\/p>\n<p>Sempre lavorando nell&#8217;ambiente virtuale <strong>venv<\/strong> e all&#8217;interno della directory principale di <strong>flask_demo<\/strong>, generiamo un file <strong>requirements.txt<\/strong> specifico per il progetto con il seguente comando:<\/p>\n<pre><code class=\"language-bash\">pip freeze &gt; requirements.txt<\/code><\/pre>\n<p>Il contenuto del file di testo risultante sar\u00e0 simile a questo:<\/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>Non \u00e8 necessario inviare il file <strong>.env<\/strong> con i segreti del database al server di produzione. Poich\u00e9 non avremo bisogno della libreria <code>python-dotenv<\/code> per leggere . <strong>env<\/strong> in produzione, possiamo rimuovere il suo riferimento dal file<strong> requirements.txt<\/strong> e rimuovere (o commentare) queste righe nel file<strong> demo.py<\/strong>:<\/p>\n<pre><code class=\"language-python\">from dotenv import load_dotenv\nload_dotenv()<\/code><\/pre>\n<h4>Aggiungere un server HTTP Python WSGI al progetto<\/h4>\n<p>Una cosa che manca ai requisiti di cui sopra \u00e8 un modo per servire l&#8217;applicazione via HTTP in un ambiente di produzione. Il server di sviluppo utilizzato sulla nostra macchina locale non \u00e8 sufficiente. Per questo progetto, utilizzeremo il pacchetto Web Server Gateway Interface (WSGI) <a href=\"https:\/\/gunicorn.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Gunicorn<\/a> tra l&#8217;applicazione e i server web <a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-nginx\/\">Nginx<\/a> di Kinsta.<\/p>\n<p>Aggiungiamo un requisito Gunicorn al nostro progetto installandolo nel nostro ambiente virtuale in questo modo:<\/p>\n<pre><code class=\"language-bash\">pip install gunicorn<\/code><\/pre>\n<p>Dopo aver installato Gunicorn, usiamo <strong>pip<\/strong> per generare nuovamente il file<strong> requirements.txt<\/strong>.<\/p>\n<p>Un&#8217;alternativa all&#8217;installazione di Gunicorn in locale \u00e8 quella di modificare il file<strong> requirements.txt<\/strong> e aggiungere semplicemente una voce come questa:<\/p>\n<pre><code class=\"language-makefile\">gunicorn==21.2.0<\/code><\/pre>\n<p>Per completare le basi del server WSGI, creiamo un file nella directory principale del progetto chiamato <strong>Procfile<\/strong> e aggiungiamo la seguente riga:<\/p>\n<pre><code class=\"language-makefile\">web: gunicorn myapp.wsgi<\/code><\/pre>\n<p>Questa sar\u00e0 la base del comando di avvio dell&#8217;applicazione in produzione.<\/p>\n<h4>Preparare il progetto per Git<\/h4>\n<p>La struttura di directory modificata \u00e8 pronta per essere distribuita su Kinsta, ma non vogliamo che tutti questi file vadano in produzione. Creiamo un file <strong>.gitignore<\/strong> nella root del progetto con un contenuto simile a questo:<\/p>\n<pre><code class=\"language-makefile\">\/venv\n.env<\/code><\/pre>\n<p>In questo modo i file della directory <strong>venv<\/strong> e i segreti del database locale in <strong>.env<\/strong> non verranno caricati sull&#8217;host Git.<\/p>\n<p>Ora possiamo avviare il nostro ambiente Git locale e inviare il codice all&#8217;host Git utilizzando gli strumenti che preferiamo.<\/p>\n<h3>Distribuire l&#8217;applicazione Python Flask su Kinsta<\/h3>\n<p>Accediamo al cruscotto MyKinsta e assicuriamoci di aver autorizzato Kinsta ad accedere al <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapplication-getting-started#git-service-providers\">provider di servizi Git<\/a>. Seguiamo i passaggi per <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-applicationadd-an-application\">aggiungere un&#8217;applicazione<\/a>, selezionando il repository e il branch sull&#8217;host Git dove Kinsta trover\u00e0 il codice del progetto Flask.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>\u00c8 possibile scegliere tra uno dei tanti centri dati disponibili in tutto il mondo per l&#8217;hosting delle applicazioni su Kinsta. Prendete nota della vostra scelta perch\u00e9 dovremo utilizzare lo stesso centro per la creazione del database.<\/p>\n<\/aside>\n\n<p>Durante la configurazione dell&#8217;ambiente di build, selezioniamo <strong>Usa Buildpacks per impostare l&#8217;immagine del container<\/strong>, ma lasciamo tutte le altre impostazioni ai valori predefiniti. (Non dovremo fornire un <strong>comando Start<\/strong> perch\u00e9 questo \u00e8 gi\u00e0 definito nel <strong>Procfile<\/strong>.)<\/p>\n<figure id=\"attachment_172622\" aria-describedby=\"caption-attachment-172622\" 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=\"Schermata dell'interfaccia MyKinsta per la configurazione dell'ambiente di build.\" width=\"960\" height=\"856\"><figcaption id=\"caption-attachment-172622\" class=\"wp-caption-text\">Scegliere Buildpacks per impostare l&#8217;immagine del container per l&#8217;applicazione.<\/figcaption><\/figure>\n<p>Dopo aver esaminato le informazioni di fatturazione (iniziando comunque gratuitamente!), clicchiamo sul pulsante <strong>Build now<\/strong> e osserviamo i progressi nel visualizzatore di log:<\/p>\n<figure id=\"attachment_172616\" aria-describedby=\"caption-attachment-172616\" 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=\"Schermata delle voci di log per la distribuzione di un'applicazione Python Flask.\" width=\"960\" height=\"617\"><figcaption id=\"caption-attachment-172616\" class=\"wp-caption-text\">Voci di log per la distribuzione di un&#8217;applicazione Python Flask.<\/figcaption><\/figure>\n<h3>Aggiungere un database per l&#8217;applicazione Python Flask<\/h3>\n<p>Kinsta offre quattro opzioni di database gestiti per soddisfare tutte le esigenze e i requisiti di un&#8217;applicazione: Redis, PostgreSQL, MariaDB e MySQL. In questo tutorial abbiamo scelto il servizio di database MySQL.<\/p>\n<p>Seguiamo le istruzioni ufficiali per <a href=\"https:\/\/docs.sevalla.com\/databases\/get-started\/add-a-database\">aggiungere un database<\/a>, ricordandoci di selezionare lo stesso data center che abbiamo scelto per l&#8217;applicazione Flask.<\/p>\n<p>Dopo aver creato il database, selezioniamolo dall&#8217;elenco dei server DB disponibili e scorriamo fino alla sezione <strong>Connessioni interne<\/strong> \/ <strong>Applicazioni consentite<\/strong> della scheda <strong>Panoramica<\/strong>. Facendo clic sul pulsante <strong>Aggiungi connessione<\/strong>, il servizio dell&#8217;applicazione Flask nello stesso data center sar\u00e0 disponibile per la selezione:<\/p>\n<figure id=\"attachment_172617\" aria-describedby=\"caption-attachment-172617\" 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=\"Schermata della finestra di dialogo per l'aggiunta di una connessione al database interno in MyKinsta.\" width=\"960\" height=\"466\"><figcaption id=\"caption-attachment-172617\" class=\"wp-caption-text\">Aggiunta di una connessione interna a un&#8217;applicazione dopo la creazione di un database.<\/figcaption><\/figure>\n<p>Facciamo clic sulla casella <strong>Aggiungi variabili d&#8217;ambiente all&#8217;applicazione<\/strong> prima di creare la nuova connessione. In questo modo vengono visualizzate le variabili d&#8217;ambiente che riporteranno i segreti del database, il tutto gestito in modo sicuro senza la necessit\u00e0 di un file <strong>.env<\/strong>.<\/p>\n<figure id=\"attachment_172618\" aria-describedby=\"caption-attachment-172618\" 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=\"Schermata della finestra di dialogo per l'aggiunta di variabili d'ambiente per le credenziali del database.\" width=\"959\" height=\"854\"><figcaption id=\"caption-attachment-172618\" class=\"wp-caption-text\">Aggiunta di variabili d&#8217;ambiente per una connessione interna al database.<\/figcaption><\/figure>\n<p>Nella parte inferiore della finestra di dialogo, le impostazioni <strong>Disponibile durante il runtime<\/strong> e<strong> Disponibile durante il processo di build<\/strong> saranno abilitate per impostazione predefinita, ed \u00e8 esattamente quello che vogliamo.<\/p>\n<p>Dopo aver cliccato sul pulsante <strong>Aggiungi connessione<\/strong>, le variabili d&#8217;ambiente necessarie per l&#8217;accesso al database saranno applicate alle <strong>Impostazioni<\/strong> del progetto nella cruscotto delle <strong>Applicazioni<\/strong> di MyKinsta:<\/p>\n<figure id=\"attachment_172619\" aria-describedby=\"caption-attachment-172619\" 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=\"Schermata di una finestra di dialogo di MyKinsta che mostra le variabili d'ambiente passate dal database a un'applicazione.\" width=\"960\" height=\"382\"><figcaption id=\"caption-attachment-172619\" class=\"wp-caption-text\">Variabili d&#8217;ambiente del database passate all&#8217;applicazione Python Flask.<\/figcaption><\/figure>\n<p>In questo modo, anche quando eseguiremo nuovamente la build dell&#8217;applicazione in seguito a futuri miglioramenti, i dati di connessione al database persisteranno.<\/p>\n<figure id=\"attachment_172620\" aria-describedby=\"caption-attachment-172620\" 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=\"Schermata dell'applicazione Python Flask live sulla piattaforma Kinsta.\" width=\"960\" height=\"441\"><figcaption id=\"caption-attachment-172620\" class=\"wp-caption-text\">L&#8217;applicazione Python Flask vive sulla piattaforma Kinsta.<\/figcaption><\/figure>\n<p>Ed \u00e8 fatta! Abbiamo appena creato un&#8217;applicazione Python Flask e l&#8217;abbiamo distribuita sulla piattaforma Kinsta.<\/p>\n<h2>Riepilogo<\/h2>\n<p>Il framework personalizzabile di Flask semplifica notevolmente la creazione di un&#8217;applicazione Python. L&#8217;utilizzo di Kinsta per distribuire un&#8217;applicazione Flask rende le cose ancora pi\u00f9 semplici, accelerando lo sviluppo e la distribuzione dell&#8217;applicazione.<\/p>\n<p>In questo caso, abbiamo imparato a costruire una semplice applicazione collegata a un database all&#8217;interno di un ambiente di sviluppo locale e poi a renderla disponibile al resto del mondo sulle piattaforme di <a href=\"https:\/\/kinsta.com\/docs\/application-hosting\">Hosting di Applicazioni web<\/a> e di <a href=\"https:\/\/kinsta.com\/docs\/database-hosting\">Hosting di Database<\/a> di Kinsta.<\/p>\n<p>Date un&#8217;occhiata a cos&#8217;altro potete costruire sulla nostra piattaforma sfogliando i nostri <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapp-quick-start\">template di avvio rapido<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python \u00e8 uno dei linguaggi di sviluppo pi\u00f9 popolari. La sua sintassi semplice e le basse barriere all&#8217;ingresso lo rendono un buon candidato per i programmatori &#8230;<\/p>\n","protected":false},"author":259,"featured_media":75989,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26215],"class_list":["post-75988","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>Creare e distribuire un&#039;applicazione Python in pochissimo con Flask e Kinsta<\/title>\n<meta name=\"description\" content=\"Ecco come distribuire rapidamente un&#039;applicazione Python Flask utilizzando i servizi di Hosting di Applicazioni e di Database di 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\/it\/blog\/applicazione-python-flask\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Costruire e distribuire un&#039;app Python in pochi secondi con Flask e Kinsta\" \/>\n<meta property=\"og:description\" content=\"Ecco come distribuire rapidamente un&#039;applicazione Python Flask utilizzando i servizi di Hosting di Applicazioni e di Database di Kinsta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-16T17:33:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-22T17:12:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/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=\"Ecco come distribuire rapidamente un&#039;applicazione Python Flask utilizzando i servizi di Hosting di Applicazioni e di Database di Kinsta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Costruire e distribuire un&#8217;app Python in pochi secondi con Flask e Kinsta\",\"datePublished\":\"2024-01-16T17:33:50+00:00\",\"dateModified\":\"2024-01-22T17:12:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/\"},\"wordCount\":2114,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/\",\"name\":\"Creare e distribuire un'applicazione Python in pochissimo con Flask e Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png\",\"datePublished\":\"2024-01-16T17:33:50+00:00\",\"dateModified\":\"2024-01-22T17:12:39+00:00\",\"description\":\"Ecco come distribuire rapidamente un'applicazione Python Flask utilizzando i servizi di Hosting di Applicazioni e di Database di Kinsta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png\",\"width\":1999,\"height\":1000},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Costruire e distribuire un&#8217;app Python in pochi secondi con Flask e Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"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\/it\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/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\/it\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Creare e distribuire un'applicazione Python in pochissimo con Flask e Kinsta","description":"Ecco come distribuire rapidamente un'applicazione Python Flask utilizzando i servizi di Hosting di Applicazioni e di Database di 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\/it\/blog\/applicazione-python-flask\/","og_locale":"it_IT","og_type":"article","og_title":"Costruire e distribuire un'app Python in pochi secondi con Flask e Kinsta","og_description":"Ecco come distribuire rapidamente un'applicazione Python Flask utilizzando i servizi di Hosting di Applicazioni e di Database di Kinsta.","og_url":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2024-01-16T17:33:50+00:00","article_modified_time":"2024-01-22T17:12:39+00:00","og_image":[{"width":1999,"height":1000,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png","type":"image\/png"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"Ecco come distribuire rapidamente un'applicazione Python Flask utilizzando i servizi di Hosting di Applicazioni e di Database di Kinsta.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png","twitter_creator":"@Kinsta_IT","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Steve Bonisteel","Tempo di lettura stimato":"12 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Costruire e distribuire un&#8217;app Python in pochi secondi con Flask e Kinsta","datePublished":"2024-01-16T17:33:50+00:00","dateModified":"2024-01-22T17:12:39+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/"},"wordCount":2114,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/","url":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/","name":"Creare e distribuire un'applicazione Python in pochissimo con Flask e Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png","datePublished":"2024-01-16T17:33:50+00:00","dateModified":"2024-01-22T17:12:39+00:00","description":"Ecco come distribuire rapidamente un'applicazione Python Flask utilizzando i servizi di Hosting di Applicazioni e di Database di Kinsta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/01\/python-flask-app.png","width":1999,"height":1000},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/applicazione-python-flask\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/kinsta.com\/it\/argomenti\/python\/"},{"@type":"ListItem","position":3,"name":"Costruire e distribuire un&#8217;app Python in pochi secondi con Flask e Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","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\/it\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/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\/it\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/75988","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=75988"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/75988\/revisions"}],"predecessor-version":[{"id":76066,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/75988\/revisions\/76066"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/translations\/es"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/translations\/nl"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/translations\/jp"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/75988\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/75989"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=75988"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=75988"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=75988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}