{"id":75500,"date":"2024-01-16T18:29:49","date_gmt":"2024-01-16T17:29:49","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=75500&#038;preview=true&#038;preview_id=75500"},"modified":"2024-01-22T18:40:55","modified_gmt":"2024-01-22T17:40:55","slug":"python-flask-app","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/","title":{"rendered":"Construire et d\u00e9ployer une application Python en un clin d&rsquo;\u0153il avec Flask et Kinsta"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/fr\/sujets\/python\/\">Python<\/a> est l&rsquo;un des <a href=\"https:\/\/kinsta.com\/fr\/sujets\/languages-developpement-web\/\">langages de d\u00e9veloppement<\/a> les plus populaires. Sa syntaxe simple et ses faibles barri\u00e8res \u00e0 l&rsquo;entr\u00e9e en font un bon candidat pour les programmeurs novices qui souhaitent se faire une place dans le paysage du d\u00e9veloppement logiciel.<\/p>\n<p>Une multitude de frameworks et de biblioth\u00e8ques facilitent la mise en place et le fonctionnement d&rsquo;une application Python. Il s&rsquo;agit notamment de <a href=\"https:\/\/docs.sevalla.com\/templates\/overviewpython-examples#django\">Django<\/a>, <a href=\"https:\/\/kinsta.com\/fr\/blog\/fastapi\/\">FastAPI<\/a> et <a href=\"https:\/\/kinsta.com\/fr\/blog\/flask-vs-django\/#what-is-flask\">Flask<\/a>. Le framework Flask attire les d\u00e9veloppeurs Python en facilitant le prototypage et la personnalisation.<\/p>\n<p>Cet article pratique montre comment d\u00e9velopper une application Python simple connect\u00e9e \u00e0 une base de donn\u00e9es \u00e0 l&rsquo;aide de 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>Les applications Python facilit\u00e9es par Flask<\/h2>\n<p>D\u00e9velopp\u00e9 en 2010, <a href=\"https:\/\/flask.palletsprojects.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Flask<\/a> est bien adapt\u00e9 au d\u00e9veloppement d&rsquo;applications web Python gr\u00e2ce \u00e0 sa facilit\u00e9 d&rsquo;utilisation et \u00e0 sa flexibilit\u00e9. Son architecture l\u00e9g\u00e8re se concentre sur la fourniture des bases tout en facilitant l&rsquo;ajout de biblioth\u00e8ques pour les fonctionnalit\u00e9s dont vous avez besoin. Cette approche rend Flask id\u00e9al pour de nombreux projets, qu&rsquo;il s&rsquo;agisse d&rsquo;applications simples ou de syst\u00e8mes complexes.<\/p>\n<p>Flask offre plusieurs outils et capacit\u00e9s pour soutenir le d\u00e9veloppement d&rsquo;applications web, y compris :<\/p>\n<ul>\n<li>Biblioth\u00e8ques et des outils pour g\u00e9rer les requ\u00eates et les r\u00e9ponses HTTP<\/li>\n<li>Possibilit\u00e9 d&rsquo;acheminer les requ\u00eates vers des fonctions d\u00e9sign\u00e9es<\/li>\n<li>Prise en charge des mod\u00e8les de rendu<\/li>\n<li>Prise en charge des bases de donn\u00e9es<\/li>\n<li>Syst\u00e8mes d&rsquo;authentification et d&rsquo;autorisation<\/li>\n<\/ul>\n<h2>Comment cr\u00e9er votre application Python Flask<\/h2>\n<p>Vous pouvez explorer les avantages de l&rsquo;utilisation de Flask pour le d\u00e9veloppement d&rsquo;applications Web en <a href=\"https:\/\/kinsta.com\/fr\/blog\/facon-d-apprendre-python\/\">cr\u00e9ant une application web Python<\/a> \u00e0 l&rsquo;aide de Flask. Ensuite, vous pouvez construire et d\u00e9ployer l&rsquo;application en utilisant le service d&rsquo;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9bergement d&rsquo;applications web<\/a> de Kinsta et la connecter \u00e0 une <a href=\"https:\/\/sevalla.com\/database-hosting\/\">base de donn\u00e9es infog\u00e9r\u00e9e<\/a> sur la plateforme Kinsta.<\/p>\n<h3>Pr\u00e9-requis de l&rsquo;application Python Flask<\/h3>\n<p>Pour suivre ce tutoriel, vous aurez besoin de :<\/p>\n<ul>\n<li><a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noopener noreferrer\">Python<\/a> version 3 ou sup\u00e9rieure<\/li>\n<li><a href=\"https:\/\/dev.mysql.com\/downloads\/installer\/\" target=\"_blank\" rel=\"noopener noreferrer\">MySQL Workbench<\/a><\/li>\n<li>Des paquets <a href=\"https:\/\/pip.pypa.io\/en\/stable\/installation\/\" target=\"_blank\" rel=\"noopener noreferrer\">pip<\/a> et <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 install\u00e9s<\/li>\n<li>Un \u00e9diteur de code<\/li>\n<li>Un compte <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> ou <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a> pour h\u00e9berger votre d\u00e9p\u00f4t Git<\/li>\n<li>Un <a href=\"https:\/\/kinsta.com\/fr\/inscription\/?product_type=app-db\">compte MyKinsta<\/a> (inscription gratuite) pour servir l&rsquo;application<\/li>\n<\/ul>\n<h3>Installation de Flask pour Python<\/h3>\n<p>Acc\u00e9dez \u00e0 votre terminal (Linux ou macOS) ou \u00e0 l&rsquo;invite de commande (Windows). Commencez par cr\u00e9er un r\u00e9pertoire appel\u00e9 <strong>flask_demo<\/strong>.<\/p>\n<p>Allez dans le nouveau r\u00e9pertoire et cr\u00e9ez un environnement virtuel Python \u00e0 l&rsquo;aide de la commande <code>python3 -m venv venv<\/code>. Dans ce cas, nous utilisons \u00e9galement <strong>venv<\/strong> comme nom pour le r\u00e9pertoire qui supportera l&rsquo;environnement virtuel.<\/p>\n<p>Activez l&rsquo;environnement virtuel \u00e0 l&rsquo;aide de l&rsquo;une des commandes suivantes :<\/p>\n<ul>\n<li><code>venvScriptsactivate<\/code> sous Windows<\/li>\n<li><code>source venv\/bin\/activate<\/code> sous Linux ou macOS<\/li>\n<\/ul>\n<p>Maintenant, installez Flask \u00e0 l&rsquo;aide de <strong>pip<\/strong> en ex\u00e9cutant <code>pip install flask<\/code>.<\/p>\n<p>Le travail effectu\u00e9 jusqu&rsquo;\u00e0 pr\u00e9sent dans votre terminal devrait ressembler \u00e0 ceci :<\/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=\"Cr\u00e9ation de la base d'une application Python Flask dans le terminal.\" width=\"960\" height=\"556\"><figcaption class=\"wp-caption-text\">Cr\u00e9ation de la base d&rsquo;une application Python Flask dans le terminal.<\/figcaption><\/figure>\n<h3>Cr\u00e9ation d&rsquo;une application de base<\/h3>\n<p>Ensuite, cr\u00e9ez l&rsquo;application de base et examinez sa fonctionnalit\u00e9 en rendant le contenu dans le navigateur.<\/p>\n<p>Dans le r\u00e9pertoire <strong>flask_demo<\/strong>, cr\u00e9ez un fichier appel\u00e9 <strong>demo.py<\/strong> et ajoutez le code suivant :<\/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>Ce code importe Flask \u00e0 partir du module <code>flask<\/code> et cr\u00e9e une instance appel\u00e9e <code>app<\/code>. Le code cr\u00e9e ensuite une route qui renvoie un texte affichant \u00ab Happy Coding ! \u00bb lorsque les utilisateurs visitent l&rsquo;application dans un navigateur. Enfin, il ex\u00e9cute le serveur de d\u00e9veloppement une fois que le script d\u00e9marre.<\/p>\n<p>Lancez l&rsquo;application en ex\u00e9cutant <code>flask --app demo run<\/code> dans le terminal. Le drapeau <code>--app<\/code> indique l&#8217;emplacement de l&rsquo;application qui sera ex\u00e9cut\u00e9e &#8211; ici, le fichier <strong>demo.py<\/strong>.<\/p>\n<h3>Ajout de mod\u00e8les \u00e0 votre application Python Flask<\/h3>\n<p>L&rsquo;ajout de mod\u00e8les \u00e0 votre application renforcera votre contenu. Tout d&rsquo;abord, cr\u00e9ez un r\u00e9pertoire appel\u00e9 <strong>templates<\/strong> \u00e0 la racine de votre application. Ensuite, allez dans le r\u00e9pertoire <strong>templates<\/strong> et cr\u00e9ez un fichier appel\u00e9 <strong>index.html<\/strong> contenant le code HTML suivant :<\/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>Dans <strong>demo.py<\/strong>, importez <strong>render_template<\/strong> du module flask et rendez le mod\u00e8le <strong>index.html<\/strong> dans la fonction route comme suit :<\/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>Servez ensuite votre application en ex\u00e9cutant <code>flask --app demo run<\/code> dans votre environnement local. Utilisez l&rsquo;adresse locale indiqu\u00e9e dans le terminal pour lancer l&rsquo;application dans votre navigateur. Vous devriez voir quelque chose comme ceci :<\/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=\"Les d\u00e9buts d'une application Python Flask dans un navigateur web.\" width=\"960\" height=\"441\"><figcaption class=\"wp-caption-text\">Les d\u00e9buts d&rsquo;une application Python Flask dans un navigateur web.<\/figcaption><\/figure>\n<h3>Connexion de votre application Flask \u00e0 une base de donn\u00e9es locale<\/h3>\n<p>Vous allez cr\u00e9er une connexion \u00e0 une base de donn\u00e9es locale &#8211; MySQL &#8211; qui stocke le contenu de l&rsquo;application.<\/p>\n<p>Pour connecter votre application Flask \u00e0 MySQL, installez les \u00e9l\u00e9ments suivants :<\/p>\n<ul>\n<li><strong>flask_mysqldb<\/strong>, le connecteur MySQL pour Flask, en utilisant <code>pip install flask_mysqldb<\/code><\/li>\n<li><strong>Python-dotenv<\/strong>, pour lire les variables d&rsquo;environnement, \u00e0 l&rsquo;aide de <code>pip install python-dotenv<\/code><\/li>\n<li>Le connecteur MySQL de Python, en utilisant <code>pip install mysql-connector-python<\/code><\/li>\n<li>La d\u00e9pendance MySQL, \u00e0 l&rsquo;aide de <code>pip install mysqlclient<\/code><\/li>\n<\/ul>\n<p>Allez sur MySQL Workbench pour cr\u00e9er une base de donn\u00e9es. Assurez-vous d&rsquo;ajouter un utilisateur de base de donn\u00e9es ayant les permissions d&rsquo;acc\u00e9der \u00e0 la base de donn\u00e9es et de cr\u00e9er des tables.<\/p>\n<p>Cr\u00e9ez un fichier <strong>.env<\/strong> dans le r\u00e9pertoire racine de votre application pour contenir les d\u00e9tails de connexion \u00e0 la base de donn\u00e9es. Vous devez ajouter \u00e0 ce mod\u00e8le les informations d&rsquo;identification de l&rsquo;utilisateur de la base de donn\u00e9es et le nom de la base de donn\u00e9es :<\/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>Dans un script <strong>demo.py<\/strong> r\u00e9vis\u00e9, nous allons maintenant importer le connecteur MySQL et utiliser <strong>Python-dotenv<\/strong> pour lire les cl\u00e9s des variables d&rsquo;environnement dans le fichier <strong>.env<\/strong>. Ce nouveau script <strong>demo.py<\/strong> v\u00e9rifie \u00e9galement l&rsquo;existence d&rsquo;une table nomm\u00e9e <strong>persons<\/strong> dans la base de donn\u00e9es et la cr\u00e9e et la remplit si elle n&rsquo;existe pas.<\/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>Apr\u00e8s l&rsquo;instanciation de Flask, le code ci-dessus utilise les variables d&rsquo;environnement pour capturer les attributs de la base de donn\u00e9es \u00e0 partir du fichier <strong>.env<\/strong> \u00e0 la racine de votre application.<\/p>\n<p>Ensuite, le code instancie MySQL et l&rsquo;associe \u00e0 Flask. Il cr\u00e9e un objet curseur dans la route <code>index<\/code>. Ensuite, le code v\u00e9rifie la pr\u00e9sence d&rsquo;une table nomm\u00e9e <strong>persons<\/strong> dans la base de donn\u00e9es. S&rsquo;il ne la trouve pas, il la cr\u00e9e avec les attributs <code>id<\/code>, <code>firstname<\/code> et <code>lastname<\/code> et ins\u00e8re deux lignes de donn\u00e9es.<\/p>\n<p>Les trois lignes suivantes ex\u00e9cutent une commande SQL pour s\u00e9lectionner toutes les lignes de la table <strong>persons<\/strong> et r\u00e9cup\u00e9rer les r\u00e9sultats. L&rsquo;objet curseur est ferm\u00e9 et les r\u00e9sultats de la requ\u00eate sont transmis \u00e0 la variable de contexte <code>entry<\/code> pour \u00eatre rendus avec le mod\u00e8le.<\/p>\n<p>Voici un fichier mod\u00e8le <strong>index.html<\/strong> r\u00e9vis\u00e9 qui peut traiter les r\u00e9sultats de la requ\u00eate de la base de donn\u00e9es :<\/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>Ex\u00e9cutez l&rsquo;application, puis revenez \u00e0 MySQL Workbench pour v\u00e9rifier les donn\u00e9es. Cela devrait ressembler \u00e0 ce qui suit :<\/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=\"R\u00e9sultats de la requ\u00eate pour la table &lt;strong&gt;persons&lt;\/strong&gt; dans MySQL Workbench.\" width=\"900\" height=\"172\"><figcaption class=\"wp-caption-text\">R\u00e9sultats de la requ\u00eate pour la table <strong>persons<\/strong> dans MySQL Workbench.<\/figcaption><\/figure>\n<p>Lorsque vous interrogez la table, les deux entr\u00e9es g\u00e9n\u00e9r\u00e9es par l&rsquo;application sont renvoy\u00e9es. Votre application affiche maintenant dans le navigateur le contenu suivant, d\u00e9riv\u00e9 de la base de donn\u00e9es :<\/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=\"Contenu g\u00e9n\u00e9r\u00e9 par la base de donn\u00e9es dans le navigateur.\" width=\"960\" height=\"441\"><figcaption id=\"caption-attachment-172615\" class=\"wp-caption-text\">Contenu g\u00e9n\u00e9r\u00e9 par la base de donn\u00e9es dans le navigateur.<\/figcaption><\/figure>\n<h2>Comment d\u00e9ployer votre application Python Flask sur Kinsta ?<\/h2>\n<p>Maintenant que votre application est op\u00e9rationnelle localement, vous pouvez la rendre visible au monde entier en l&rsquo;h\u00e9bergeant sur Kinsta. Vous pouvez associer les services d&rsquo;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9bergement d&rsquo;applications web<\/a> et d&rsquo;<a href=\"https:\/\/sevalla.com\/database-hosting\/\">h\u00e9bergement de bases de donn\u00e9es infog\u00e9r\u00e9es<\/a> de Kinsta pour donner vie \u00e0 cette application (et \u00e0 vos futurs efforts) dans le cloud. Et vous pouvez <a href=\"https:\/\/kinsta.com\/fr\/inscription\/?product_type=app-db\">les essayer tous les deux gratuitement<\/a>.<\/p>\n<h3>Pr\u00e9parer votre projet Python pour le d\u00e9ploiement<\/h3>\n<p>La plateforme d&rsquo;h\u00e9bergement d&rsquo;applications Web de Kinsta d\u00e9ploie votre code \u00e0 partir de votre h\u00e9bergeur Git pr\u00e9f\u00e9r\u00e9. L&rsquo;\u00e9tape suivante consiste \u00e0 configurer votre environnement d&rsquo;application pour prendre en charge cette voie et permettre \u00e0 Kinsta de d\u00e9ployer votre application avec toutes les d\u00e9pendances n\u00e9cessaires.<\/p>\n<p>Commencez par cr\u00e9er un nouveau r\u00e9pertoire \u00e0 la racine de votre projet <strong>flask_demo<\/strong>. Appelons-le <strong>myapp.<\/strong> D\u00e9placez ensuite le r\u00e9pertoire <strong>templates<\/strong> et le fichier <strong>demo.py<\/strong> dans <strong>myapp<\/strong>.<\/p>\n<p>Dans le r\u00e9pertoire <strong>myapp<\/strong>, cr\u00e9ez un fichier <strong>wsgi.py<\/strong> avec le contenu suivant :<\/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>Le processus de construction de Kinsta utilisera \u00e9galement <strong>pip<\/strong> pour g\u00e9n\u00e9rer votre application. Vous pouvez transmettre une liste des d\u00e9pendances de votre application \u00e0 <strong>pip<\/strong> du c\u00f4t\u00e9 de la production en utilisant un fichier <strong>requirements.txt<\/strong> dans le r\u00e9pertoire racine du projet.<\/p>\n<p>Tout en travaillant dans l&rsquo;environnement virtuel <strong>venv<\/strong> et dans le r\u00e9pertoire racine <strong>flask_demo<\/strong>, vous pouvez g\u00e9n\u00e9rer un fichier <strong>requirements.txt<\/strong> sp\u00e9cifique \u00e0 votre projet \u00e0 l&rsquo;aide de la commande suivante :<\/p>\n<pre><code class=\"language-bash\">pip freeze &gt; requirements.txt<\/code><\/pre>\n<p>Le contenu du fichier texte r\u00e9sultant ressemblera \u00e0 ceci :<\/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>Vous n&rsquo;enverrez pas le fichier <strong>.env<\/strong> avec ses secrets de base de donn\u00e9es au serveur de production. Puisque vous n&rsquo;aurez pas besoin de la biblioth\u00e8que <code>python-dotenv<\/code> pour lire <strong>.<\/strong> env en production, vous pouvez supprimer sa r\u00e9f\u00e9rence dans <strong>requirements.txt<\/strong> et supprimer (ou commenter) ces lignes dans <strong>demo.py<\/strong>:<\/p>\n<pre><code class=\"language-python\">from dotenv import load_dotenv\nload_dotenv()<\/code><\/pre>\n<h4>Ajouter un serveur HTTP WSGI Python au projet<\/h4>\n<p>Une chose qui manque aux exigences ci-dessus est un moyen de servir l&rsquo;application via HTTP dans un environnement de production. Le serveur de d\u00e9veloppement utilis\u00e9 sur votre machine locale ne suffira pas. Pour ce projet, vous utiliserez le paquet WSGI (Web Server Gateway Interface) <a href=\"https:\/\/gunicorn.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Gunicorn<\/a> entre l&rsquo;application et les serveurs web <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-nginx\/\">Nginx<\/a> de Kinsta.<\/p>\n<p>Vous pouvez ajouter une exigence Gunicorn \u00e0 votre projet en l&rsquo;installant dans votre environnement virtuel comme suit :<\/p>\n<pre><code class=\"language-bash\">pip install gunicorn<\/code><\/pre>\n<p>Une fois Gunicorn install\u00e9, utilisez <strong>pip<\/strong> pour g\u00e9n\u00e9rer \u00e0 nouveau <strong>requirements.txt<\/strong>.<\/p>\n<p>Une alternative \u00e0 l&rsquo;installation locale de Gunicorn est d&rsquo;\u00e9diter le <strong>fichier requirements.txt<\/strong> et d&rsquo;y ajouter une entr\u00e9e comme celle-ci :<\/p>\n<pre><code class=\"language-makefile\">gunicorn==21.2.0<\/code><\/pre>\n<p>Pour terminer le travail de base du serveur WSGI, cr\u00e9ez un fichier dans le r\u00e9pertoire racine du projet nomm\u00e9 <strong>Procfile<\/strong> et ajoutez la ligne suivante :<\/p>\n<pre><code class=\"language-makefile\">web: gunicorn myapp.wsgi<\/code><\/pre>\n<p>Ce sera la base de la commande de d\u00e9marrage de votre application en production.<\/p>\n<h4>Pr\u00e9parer votre projet pour Git<\/h4>\n<p>La structure de r\u00e9pertoire r\u00e9vis\u00e9e est pr\u00eate \u00e0 \u00eatre d\u00e9ploy\u00e9e chez Kinsta, mais vous ne voulez pas que tous ces fichiers soient envoy\u00e9s en production. Cr\u00e9ez un fichier <strong>.gitignore<\/strong> \u00e0 la racine du projet avec un contenu comme celui-ci :<\/p>\n<pre><code class=\"language-makefile\">\/venv\n.env<\/code><\/pre>\n<p>Cela emp\u00eachera les fichiers du r\u00e9pertoire <strong>venv<\/strong> et les secrets de la base de donn\u00e9es locale dans <strong>.env<\/strong> d&rsquo;\u00eatre t\u00e9l\u00e9vers\u00e9s sur votre h\u00f4te Git.<\/p>\n<p>Vous pouvez maintenant lancer votre environnement Git local et pousser le code vers votre h\u00f4te Git en utilisant les outils de votre choix.<\/p>\n<h3>D\u00e9ployer votre application Python Flask sur Kinsta<\/h3>\n<p>Connectez-vous \u00e0 votre tableau de bord MyKinsta et assurez-vous que vous avez autoris\u00e9 Kinsta \u00e0 acc\u00e9der \u00e0 votre <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapplication-getting-started#git-service-providers\">fournisseur de services Git<\/a>. Suivez les \u00e9tapes pour <a href=\"https:\/\/docs.sevalla.com\/applications\/get-started\/add-an-applicationadd-an-application\">ajouter une application<\/a>, en s\u00e9lectionnant le d\u00e9p\u00f4t et la branche sur l&rsquo;h\u00f4te Git o\u00f9 Kinsta trouvera le code de ce projet Flask.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Vous choisirez l&rsquo;un des nombreux centres de donn\u00e9es disponibles dans le monde pour l&rsquo;h\u00e9bergement d&rsquo;applications chez Kinsta. Notez votre choix car vous voudrez utiliser le m\u00eame centre lors de la cr\u00e9ation de votre base de donn\u00e9es.<\/p>\n<\/aside>\n\n<p>Lors de la configuration de l&rsquo;environnement de construction, s\u00e9lectionnez <strong>Utimiser Buildpacks pour configurer l&rsquo;image du conteneur<\/strong>, mais laissez tous les autres r\u00e9glages par d\u00e9faut. (Vous ne fournirez pas de <strong>commande Start<\/strong> car celle-ci est d\u00e9j\u00e0 d\u00e9finie dans votre <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=\"Choisir Buildpacks pour configurer l'image du conteneur pour l'application.\" width=\"960\" height=\"856\"><figcaption class=\"wp-caption-text\">Choisir Buildpacks pour configurer l&rsquo;image du conteneur pour l&rsquo;application.<\/figcaption><\/figure>\n<p>Apr\u00e8s avoir pris connaissance des informations relatives \u00e0 la facturation (vous pouvez toujours commencer gratuitement !), cliquez sur le bouton <strong>Construire maintenant<\/strong> et observez la progression dans le visualiseur de journaux :<\/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=\"Entr\u00e9es de journal pour le d\u00e9ploiement de votre application Python Flask.\" width=\"960\" height=\"617\"><figcaption class=\"wp-caption-text\">Entr\u00e9es de journal pour le d\u00e9ploiement de votre application Python Flask.<\/figcaption><\/figure>\n<h3>Ajouter une base de donn\u00e9es pour votre application Python Flask<\/h3>\n<p>Kinsta propose quatre options de bases de donn\u00e9es infog\u00e9r\u00e9es pour r\u00e9pondre \u00e0 vos besoins et aux exigences de votre application : Redis, PostgreSQL, MariaDB et MySQL. Pour ce tutoriel, nous avons construit pour le service de base de donn\u00e9es MySQL.<\/p>\n<p>Suivez les instructions officielles pour <a href=\"https:\/\/docs.sevalla.com\/databases\/get-started\/add-a-database\">ajouter une base de donn\u00e9es<\/a>, en n&rsquo;oubliant pas de s\u00e9lectionner le m\u00eame centre de donn\u00e9es que celui que vous avez choisi pour votre application Flask.<\/p>\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 la base de donn\u00e9es, s\u00e9lectionnez-la dans la liste de vos serveurs de base de donn\u00e9es disponibles et faites d\u00e9filer vers le bas jusqu&rsquo;\u00e0 la section <strong>Connexions internes<\/strong> \/ <strong>Applications autoris\u00e9es<\/strong> ) de l&rsquo;onglet <strong>Vue d&rsquo;ensemble<\/strong>. Lorsque vous cliquez sur le bouton <strong>Ajouter une connexion<\/strong>, votre service d&rsquo;application Flask dans le m\u00eame centre de donn\u00e9es sera disponible \u00e0 la s\u00e9lection :<\/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=\"Ajouter une connexion interne \u00e0 une application apr\u00e8s avoir cr\u00e9\u00e9 une base de donn\u00e9es.\" width=\"960\" height=\"466\"><figcaption class=\"wp-caption-text\">Ajouter une connexion interne \u00e0 une application apr\u00e8s avoir cr\u00e9\u00e9 une base de donn\u00e9es.<\/figcaption><\/figure>\n<p>Cliquez sur la case \u00e0 cocher <strong>Ajouter des variables d&rsquo;environnement \u00e0 l&rsquo;application<\/strong> avant de cr\u00e9er la nouvelle connexion. Cela permet d&rsquo;afficher les variables d&rsquo;environnement qui contiendront les secrets de votre base de donn\u00e9es &#8211; le tout g\u00e9r\u00e9 de mani\u00e8re s\u00e9curis\u00e9e sans avoir besoin du fichier <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=\"Ajout de variables d'environnement pour une connexion interne \u00e0 votre base de donn\u00e9es.\" width=\"959\" height=\"854\"><figcaption class=\"wp-caption-text\">Ajout de variables d&rsquo;environnement pour une connexion interne \u00e0 votre base de donn\u00e9es.<\/figcaption><\/figure>\n<p>En bas de la bo\u00eete de dialogue ci-dessus, les param\u00e8tres <strong>Disponible pendant l&rsquo;ex\u00e9cution<\/strong> et<strong> Disponible pendant le processus de construction<\/strong> seront activ\u00e9s par d\u00e9faut &#8211; et c&rsquo;est exactement ce que vous voulez.<\/p>\n<p>Apr\u00e8s avoir cliqu\u00e9 sur le bouton <strong>Ajouter une connexion<\/strong>, les variables d&rsquo;environnement requises pour l&rsquo;acc\u00e8s \u00e0 la base de donn\u00e9es seront appliqu\u00e9es aux <strong>r\u00e9glages <\/strong>de votre projet dans le tableau de bord <strong>Applications<\/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=\"Variables d'environnement de la base de donn\u00e9es transmises \u00e0 l'application Python Flask.\" width=\"960\" height=\"382\"><figcaption class=\"wp-caption-text\">Variables d&rsquo;environnement de la base de donn\u00e9es transmises \u00e0 l&rsquo;application Python Flask.<\/figcaption><\/figure>\n<p>Maintenant, m\u00eame si vous reconstruisez votre application apr\u00e8s de futures am\u00e9liorations, les d\u00e9tails de la connexion \u00e0 la base de donn\u00e9es persisteront.<\/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=\"L'application Python Flask vit sur la plateforme Kinsta.\" width=\"960\" height=\"441\"><figcaption class=\"wp-caption-text\">L&rsquo;application Python Flask vit sur la plateforme Kinsta.<\/figcaption><\/figure>\n<p>F\u00e9licitations ! Vous venez de cr\u00e9er une application Python Flask et de la d\u00e9ployer sur la plateforme Kinsta.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Le framework personnalisable de Flask simplifie consid\u00e9rablement la cr\u00e9ation d&rsquo;une application Python. L&rsquo;utilisation de Kinsta pour d\u00e9ployer une application Flask rend les choses encore plus faciles, en acc\u00e9l\u00e9rant le d\u00e9veloppement et le d\u00e9ploiement des applications.<\/p>\n<p>Ici, nous avons appris \u00e0 cr\u00e9er une application simple connect\u00e9e \u00e0 une base de donn\u00e9es dans un environnement de d\u00e9veloppement local, puis \u00e0 la mettre \u00e0 la disposition du reste du monde sur les plateformes d&rsquo;h\u00e9bergement d&rsquo;<a href=\"https:\/\/kinsta.com\/docs\/application-hosting\">applications web<\/a> et de <a href=\"https:\/\/kinsta.com\/docs\/database-hosting\">bases de donn\u00e9es<\/a> de Kinsta.<\/p>\n<p>D\u00e9couvrez ce que vous pouvez construire sur notre plateforme en consultant nos <a href=\"https:\/\/docs.sevalla.com\/applications\/overviewapp-quick-start\">mod\u00e8les de d\u00e9marrage rapide<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python est l&rsquo;un des langages de d\u00e9veloppement les plus populaires. Sa syntaxe simple et ses faibles barri\u00e8res \u00e0 l&rsquo;entr\u00e9e en font un bon candidat pour les &#8230;<\/p>\n","protected":false},"author":259,"featured_media":75501,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1003],"class_list":["post-75500","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>Construire et d\u00e9ployer une application Python en un clin d&#039;\u0153il avec Flask et Kinsta<\/title>\n<meta name=\"description\" content=\"Voici comment d\u00e9ployer rapidement une application Python Flask en utilisant les services d&#039;h\u00e9bergement d&#039;applications et de bases de donn\u00e9es 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\/fr\/blog\/python-flask-app\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construire et d\u00e9ployer une application Python en un clin d&#039;\u0153il avec Flask et Kinsta\" \/>\n<meta property=\"og:description\" content=\"Voici comment d\u00e9ployer rapidement une application Python Flask en utilisant les services d&#039;h\u00e9bergement d&#039;applications et de bases de donn\u00e9es de Kinsta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-16T17:29:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-22T17:40:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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=\"Voici comment d\u00e9ployer rapidement une application Python Flask en utilisant les services d&#039;h\u00e9bergement d&#039;applications et de bases de donn\u00e9es de Kinsta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Construire et d\u00e9ployer une application Python en un clin d&rsquo;\u0153il avec Flask et Kinsta\",\"datePublished\":\"2024-01-16T17:29:49+00:00\",\"dateModified\":\"2024-01-22T17:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/\"},\"wordCount\":2624,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/\",\"name\":\"Construire et d\u00e9ployer une application Python en un clin d'\u0153il avec Flask et Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png\",\"datePublished\":\"2024-01-16T17:29:49+00:00\",\"dateModified\":\"2024-01-22T17:40:55+00:00\",\"description\":\"Voici comment d\u00e9ployer rapidement une application Python Flask en utilisant les services d'h\u00e9bergement d'applications et de bases de donn\u00e9es de Kinsta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png\",\"width\":1999,\"height\":1000},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Construire et d\u00e9ployer une application Python en un clin d&rsquo;\u0153il avec Flask et Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"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\/fr\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Construire et d\u00e9ployer une application Python en un clin d'\u0153il avec Flask et Kinsta","description":"Voici comment d\u00e9ployer rapidement une application Python Flask en utilisant les services d'h\u00e9bergement d'applications et de bases de donn\u00e9es 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\/fr\/blog\/python-flask-app\/","og_locale":"fr_FR","og_type":"article","og_title":"Construire et d\u00e9ployer une application Python en un clin d'\u0153il avec Flask et Kinsta","og_description":"Voici comment d\u00e9ployer rapidement une application Python Flask en utilisant les services d'h\u00e9bergement d'applications et de bases de donn\u00e9es de Kinsta.","og_url":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2024-01-16T17:29:49+00:00","article_modified_time":"2024-01-22T17:40:55+00:00","og_image":[{"width":1999,"height":1000,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png","type":"image\/png"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"Voici comment d\u00e9ployer rapidement une application Python Flask en utilisant les services d'h\u00e9bergement d'applications et de bases de donn\u00e9es de Kinsta.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Steve Bonisteel","Dur\u00e9e de lecture estim\u00e9e":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Construire et d\u00e9ployer une application Python en un clin d&rsquo;\u0153il avec Flask et Kinsta","datePublished":"2024-01-16T17:29:49+00:00","dateModified":"2024-01-22T17:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/"},"wordCount":2624,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/","url":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/","name":"Construire et d\u00e9ployer une application Python en un clin d'\u0153il avec Flask et Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png","datePublished":"2024-01-16T17:29:49+00:00","dateModified":"2024-01-22T17:40:55+00:00","description":"Voici comment d\u00e9ployer rapidement une application Python Flask en utilisant les services d'h\u00e9bergement d'applications et de bases de donn\u00e9es de Kinsta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/01\/python-flask-app.png","width":1999,"height":1000},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/python-flask-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/kinsta.com\/fr\/sujets\/python\/"},{"@type":"ListItem","position":3,"name":"Construire et d\u00e9ployer une application Python en un clin d&rsquo;\u0153il avec Flask et Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","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\/fr\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/75500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=75500"}],"version-history":[{"count":4,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/75500\/revisions"}],"predecessor-version":[{"id":75512,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/75500\/revisions\/75512"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/translations\/es"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/translations\/nl"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/translations\/jp"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/75500\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/75501"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=75500"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=75500"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=75500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}