Table des matières
Nos applications sont bien plus que de simples pages, c'est pourquoi nous devons créer des moyens de stocker les données dans un système de persistance, c'est là que le Base de données l'enjeu où pour établir la manière dont la base de données va nous aider est que les modèles doivent être créés.Un modèle nous donne la structure sous laquelle va opérer la plus grande logique de notre application, c'est là que nous donnons un sens aux différentes entités avec lesquelles nous devons avoir pour exercer nos actions.
Ballon vous avez la possibilité d'utiliser différents types de Base de données en utilisant uniquement le ORM SQLAlchemy.
ExigencesNous avons besoin d'une installation fonctionnelle de Ballon, et les autorisations respectives pour pouvoir installer plus de composants via pépin. Si nous avons la possibilité de travailler avec Environnement virtuel c'est beaucoup plus recommandé, mais ce n'est pas nécessaire. Si nous voulons extrapoler les exemples du didacticiel, nous aurons besoin de quelques Base de données Quoi MySQL au cas où nous voudrions apporter la fonctionnalité à un environnement beaucoup plus réel, car dans les exercices nous travaillerons avec sqlite comme mesure de simplification et pour être plus pratique.
La première chose que nous allons faire est d'installer SQLAlchimie, cette étape est très simple, il suffit d'exécuter la commande suivante dans la console activée pour s'exécuter pépin:
pip installer flacon-sqlalchemyÀ la fin, nous obtiendrons un message de réussite si tout s'est bien passé :
1- Un fichier nommé run.py qui sera à la racine de l'application, ce fichier est celui qui fait l'initialisation de base de tout notre environnement.
2- Un dossier nommé flacon et à l'intérieur de celui-ci un fichier appelé __init__.py qui est l'endroit où nous allons initialiser l'utilisation de ballon et de SQLAlchimie directement.
Voyons dans l'image suivante à quoi ressemble cette structure dans un projet :
depuis flasko import appapp.run (debug = True)Ensuite dans notre fichier __init__.py nous allons placer ce code :
from flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemyapp = Flask (__ nom __) app.config ['SQLALCHEMY_DATABASE_URI'] = 'sqlite: //flaskodb.db'db = SQLAlchemy (app)Ce dernier code est très simple à expliquer, on importe juste Ballon, puis nous importons SQLAlchimie, nous établissons notre application pour qu'elle fonctionne avec le framework, puis nous établissons la connexion avec notre Base de données dans ce cas sqlite, où il s'appellera flaskdb.db et il sera dans le même répertoire que notre application. Enfin, nous attribuons l'objet SQLAlchimie à une variable appelée db avec lequel nous travaillerons plus tard.
Si nous démarrons notre application maintenant, elle devrait démarrer sans erreur, la seule chose est que nous n'aurons pas de résultat car l'application est toujours vide.
Puisque nous avons la configuration de base de notre application, nous devons maintenant jeter les bases pour créer notre modèle, pour cela nous devrons créer un dossier dans notre dossier qui contient le fichier __init__.py et c'est là que nous allons générer le contenu nécessaire.
Voyons comment notre structure de dossiers est modifiée :
from flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemyapp = Flask (__ nom __) app.config ['SQLALCHEMY_DATABASE_URI'] = 'sqlite: ///flaskodb.db'db = SQLAlchemy (app) from import flasko.product. register_blueprint (produit) db.create_all ()Ce que nous avons fait, c'est qu'après la création de l'objet db nous avons importé les vues de notre nouveau dossier et enregistré un plan, enfin nous disons à l'objet db qu'il doit créer toutes les tables nécessaires. Maintenant, nous devons modifier notre fichier modèles.py à l'intérieur du produit, et nous placerons le code suivant :
de flasko import dbclass Product (db.Model): id = db.Column (db.Integer, primary_key = True) name = db.Column (db.String (255)) price = db.Column (db.Float) def __init__ (self, name, price): self.name = name self.price = price def __repr __ (self): return ''% self.idIci, en gros, ce que nous faisons est définir une classe qui portera comme attributs les champs que nous aurons besoin de notre produit, il contient également quelques méthodes pour la définition et la représentation de notre modèle.
Une fois ce qui précède accompli, on passe au fichier vues.py, en cela, nous devons créer le code qui nous permet d'interagir avec notre modèle pour cela, nous devons écrire ce qui suit :
from flask import request, jsonify, Blueprintfrom flasko import app, dbfrom flasko.product.models import Productproduct = Blueprint ('product', __name __) @ app.route ('/') @ app.route ('/ start') def start() : return "Welcome to Flasko" @ app.route ('/ product /') def product (id): product = Product.query.get_or_404 (id) return 'Product -% s, $% s'% ( product .name, product.price) @ app.route ('/ products') def products (): products = Product.query.all () res = {} pour le produit dans products: res [product.id] = {' name ': product.name,' price ': str (product.price)} return jsonify(res)@app.route (' / create-product ', methodes = [' POST ',]) def create_product (): nom = request.form.get ('nom') prix = request.form.get ('prix') produit = Produit (nom, prix) db.session.add (produit) db.session.commit () return 'Le produit a été créé avec succès 'La première chose que nous remarquons est que nous avons beaucoup plus de contenu dans ce fichier que dans le reste de notre application et c'est parce que c'est là que se déroule toute la vie de notre vue, la première route est le début de notre application et ne impliquent un plus grand mystère.
Les deuxième et troisième itinéraires sont à consulter, où nous pouvons rechercher par identifiant de produit et au cas où il n'y aurait rien pour renvoyer une page 404, nous avons également la fonctionnalité de répertorier tous les produits disponibles dans notre Base de données.
Le dernier itinéraire est celui qui nous permet à travers la méthode PUBLIER la création d'un produit et son stockage ultérieur dans Base de données, pour cela nous instancions notre modèle Product, où nous passons ensuite cet attribut à l'objet db et avec ses méthodes ajouter Oui s'engager nous l'ajoutons à Base de données.
Maintenant ce qui reste à tester notre application c'est d'ajouter le contenu qui ira dans notre Database, si on se souvient dans le fichier vues.py nous créons une vue qui reçoit des données via la méthode PUBLIER et c'est lui qui se charge d'y faire les insertions. Pour ajouter des éléments, nous allons utiliser un module Python appelé demandes qui nous permet d'envoyer des données via POST, si nous ne l'avons pas disponible nous devons simplement l'installer avec la commande suivante :
demandes d'installation de pipDans une console secondaire nous allons lancer notre application flacon pour que le serveur soit opérationnel et pour pouvoir envoyer les requêtes de Python. Dans notre console interactive Python auquel on accède en écrivant le mot python, nous devons procéder comme suit :
request.post ('http://127.0.0.1:5000/ create-product', data = {'name': 'product1', 'price': '50'})Ce que nous avons fait, c'est envoyer une demande via PUBLIER à notre route qui ajoute les éléments à la base de données, les paramètres sont passés dans un dictionnaire Python qui ressemble beaucoup à un objet JSON.
Cela devrait nous donner un code 200 qui signifie que nous avons effectivement réussi notre requête, nous pouvons le voir dans l'image suivante :
Avec cela, nous avons terminé ce tutoriel, nous savons déjà comment créer des modèles dans BallonDe plus, nous avons appris à manipuler de manière basique mais très utile les ORM SQLAlchimie, où ces composants sont très importants lorsque nous construisons des applications beaucoup plus volumineuses car ils nous permettront d'obtenir des résultats plus complexes avec moins de travail.