Appuyez sur Entrée pour rechercher

Hébergez votre application Python sur IBMi

Author Avatar
Pinar Bedel
Business Consultant

Nos applications, nous les commençons tous en local sur nos ordinateurs. Soit en créant un nouveau projet, soit en construisant une idée du début à la fin sur notre propre hôte local.

Mais, qu’en est-il quand l’application est prête à être partagée avec le monde entier ?

Vous aurez alors besoin d’un environnement de production. Pour déployer votre application, vous devez passer par un déploiement d’application.

Dans cet article, nous vous partageons la manière dont nous avons déployé notre application Python sur notre système Power IBMi.

Configuration du projet

Pour la configuration de notre projet, nous avons créé le module products_module, et le module users_module pour séparer ces deux éléments.

Les modules sont utilisés lorsque vous importez des déclarations telles que import Flask. Ils contiennent un « Model » et un « Controller. » Le Model interagit avec la base de données et le Controller interagit avec le modèle et récupère les informations demandées par le biais de déclencheurs ou d'événements.

Picture 1-2

Le fichier __init__.py contient l'importation des paquets et la configuration du projet, notre exemple.

Paquets utilisés

Flask : https://github.com/flask-api/flask-api

Flask-restful : https://github.com/flask-restful/flask-restful

Flask-SqlAlchemy : https://github.com/pallets-eco/flask-sqlalchemy

SqlAlchemy-ibmi : https://github.com/IBM/sqlalchemy-ibmi

Connexion avec DB2

Pour la connexion avec notre base de données db2, nous avons utilisé le paquet "Flask-SQLAlchemy". Il peut être facilement installé et configuré.

Après la mise en place de l'application Flask, la connexion à la base de données peut être configurée avec SQLAlchemy. Ce paquet est géré par IBM, ce qui garantit qu'il restera à jour. Il est également open source, les expansions sont alors possibles pour la communauté.

Dans notre démo, nous avons ajouté la configuration via un fichier de configuration séparé. Dans l'image ci-dessous, vous pouvez voir l'importation de Flask et SQLAlchemy et définir les premières étapes de la connexion.

picture 2

Le fichier de configuration définit le schéma de base de données que vous utilisez ; votre hôte de connexion et l'utilisateur de connexion.

picture 3

Déploiement avec FastCGI

La première étape du déploiement de notre application consiste à utiliser FastCGI, qui est une option de déploiement pour Python. Pour déployer votre application Python avec FastCGI, vous devez créer un serveur WSGI qui exécutera votre application. Ce package peut être facilement importé et utilisé comme suit :

picture 4

Configuration d'un serveur HTTP

Pour la dernière étape du déploiement réel de notre application Python, nous avons créé un serveur HTTP sur notre système IBMi.

La création du serveur HTTP est une étape facile, l'étape suivante consiste à ajouter la configuration. Avec la plateforme IBM Web Administration for I aka HTTP Admin, il est facile de configurer le fichier de configuration httpd.

La première étape est d’ajouter le module FastCGI pour gérer votre script Python. Ensuite, ajoutez au fichier de configuration la racine du document et le répertoire de votre application Python, c'est-à-dire l'emplacement de votre application sur votre système.

Voici un exemple du fichier httpd.conf :

picture 5

picture 5 bis

Démonstration de notre application Python

Pour démontrer le concept de notre application Python nommée "pythonflask", nous avons créé une application API qui renvoie des données JSON brutes.

Deux routes ont été créées, elles se connectent à notre base de données pour obtenir les informations de la table nécessaire.

Dans le contrôleur, nous définissons les champs de ressources et obtenons les données dont nous avons besoin, ce qui peut être toutes les entrées de cette table ou juste un produit par nom de produit ou ID. Cela affiche les informations nécessaires et les renvoie à l'interface.

Nos deux appels de route contiennent toutes les données de nos produits et des utilisateurs.

picture 6

Voici un exemple de contrôleur pour récupérer les données du produit, le premier donne le produit qui s'identifie avec l'id du produit demandé, tandis que le second renvoie toutes les données du produit de la table.

picture 7

 

 

Offres d'emploi actuelles

Nous sommes toujours à la recherche de nouveau collègues

Si vous partagez nos valeurs et que vous êtes à la recherche d'un emploi stimulant au sein du meilleur lieu de travail de Belgique, visitez notre site web.

Postule maintenant

Abonnez-vous

Suivez-nous

  

Partage cet article