Cuprins
Aplicațiile noastre sunt mult mai mult decât pagini simple, de aceea trebuie să creăm modalități de stocare a datelor într-un sistem de persistență, aici este locul unde Baze de date în joc, pentru a stabili modul în care baza de date ne va ajuta este că modelele trebuie create.Un model ne oferă structura sub care va funcționa cea mai mare logică a aplicației noastre, de aici dăm un sens diferitelor entități cu care trebuie să avem pentru a ne exercita acțiunile.
Balon aveți posibilitatea de a utiliza diferite tipuri de Baze de date folosind numai ORM SQLAlchemy.
CerințeAvem nevoie de o instalare funcțională a Balonși permisiunile respective pentru a putea instala mai multe componente pip. Dacă avem posibilitatea să lucrăm cu Virtualenv este mult mai recomandat, însă nu este necesar. Dacă vrem să extrapolăm exemplele de tutoriale, vom avea nevoie de câteva Bază de date Ce MySQL în cazul în care dorim să aducem funcționalitatea într-un mediu mult mai real, deoarece în exercițiile cu care vom lucra sqlite ca măsură de simplificare și să fie mai practic.
Primul lucru pe care îl vom face este să instalăm SQLAlchimie, acest pas este foarte simplu, trebuie doar să executăm următoarea comandă în consola activată pentru a rula pip:
pip instala flask-sqlalchemyLa final vom primi un mesaj de succes dacă totul a decurs corect:
1- Un fișier numit run.py care va fi în rădăcina aplicației, acest fișier este cel care face inițializarea de bază a întregului nostru mediu.
2- Un dosar numit flasko iar în interiorul acestuia un fișier numit __init__.py care este locul unde vom inițializa utilizarea balon și de SQLAlchimie direct.
Să vedem în imaginea următoare cum arată această structură într-un proiect:
din flasko import appapp.run (depanare = Adevărat)Apoi, în fișierul nostru __init__.py vom plasa acest cod:
din flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemyapp = Flask (__ name __) app.config ['SQLALCHEMY_DATABASE_URI'] = 'sqlite: //flaskodb.db'db = SQLAlchemy (app)Acest ultim cod este foarte ușor de explicat, doar îl importăm Balon, apoi importăm SQLAlchimie, stabilim aplicația noastră pentru a lucra cu cadrul și apoi stabilim conexiunea cu Bază de date în acest caz sqlite, unde va fi numit flaskdb.db și va fi în același director cu aplicația noastră. În cele din urmă atribuim obiectul SQLAlchimie la o variabilă numită db cu care vom lucra mai târziu.
Dacă începem aplicația noastră acum, ar trebui să înceapă fără erori, singurul lucru este că nu vom avea un rezultat, deoarece aplicația este încă goală.
Deoarece acum avem configurația de bază a aplicației noastre, trebuie să punem bazele pentru a crea modelul nostru, pentru aceasta va trebui să creăm un folder în dosarul nostru care conține fișierul __init__.py și acolo vom genera conținutul necesar.
Să vedem cum se modifică structura folderelor noastre:
din flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemyapp = Flask (__ name __) app.config ['SQLALCHEMY_DATABASE_URI'] = 'sqlite: ///flaskodb.db'db = SQLAlchemy (app) from import flasko.product. (produs) db.create_all ()Ceea ce am făcut este că după crearea obiectului db am importat vizualizările din noul nostru folder și am înregistrat un plan, în cele din urmă îi spunem obiectului db că trebuie să creeze toate tabelele necesare. Acum trebuie să ne modificăm fișierul models.py în interiorul produsului și vom plasa următorul cod:
din flasko import dbclass Produs (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 = nume self.price = preț def __repr __ (self): returnează ''% self.idAici practic ceea ce facem este definește o clasă care va purta ca atribute câmpurile pe care le vom solicita produsului nostru, de asemenea, în cadrul acestuia există câteva metode pentru definirea și reprezentarea modelului nostru.
Odată ce cele de mai sus sunt realizate, mergem la fișier views.py, în aceasta trebuie să creăm codul care ne permite să interacționăm cu modelul nostru pentru aceasta trebuie să scriem următoarele:
din cererea de import a balonului, jsonify, Blueprint de la flasko import app, dbde la flasko.product.models import Productproduct = Blueprint ('produs', __name __) @ app.route ('/') @ app.route ('/ start') def start (): returnează „Bun venit la Flasko” @ app.route ('/ product /') def product (id): product = Product.query.get_or_404 (id) returnează 'Produs -% s, $% s'% ( product .name, product.price) @ app.route ('/ products') def products (): products = Product.query.all () res = {} pentru produsul din produse: res [product.id] = {' nume ': product.name,' price ': str (product.price)} return jsonify(res)@app.route (' / create-product ', methods = [' POST ',]) def create_product (): name = request.form.get ('nume') preț = request.form.get ('preț') produs = Produs (nume, preț) db.session.add (produs) db.session.commit () returnează 'Produsul a fost creat cu succes 'Primul lucru pe care îl observăm este că avem mult mai mult conținut în acest fișier decât în restul aplicației noastre și pentru că aici se desfășoară întreaga viață a vederii noastre, primul traseu este începutul aplicației noastre și nu are implică orice mister mai mare.
Cea de-a doua și a treia rută sunt pentru consultare, unde putem căuta după codul produsului și în cazul în care nu există nimic care să returneze o pagină 404, avem și funcționalitatea de a lista toate produsele disponibile în Bază de date.
Ultimul traseu este cel care ne permite prin metodă POST crearea unui produs și stocarea ulterioară a acestuia în Bază de date, pentru aceasta, instanțăm modelul nostru de produs, unde apoi transmitem atributul respectiv obiectului db și cu metodele sale adăuga Da comite îl adăugăm la Bază de date.
Acum ceea ce rămâne să testăm aplicația noastră este să adăugăm conținutul care va intra în baza noastră de date, dacă ne amintim în fișier views.py creăm o vizualizare care primește date prin metodă POST și este cel însărcinat cu realizarea inserțiilor în el. Pentru a adăuga elemente vom folosi un modul Piton numit solicitări care ne permite să trimitem date prin POST, dacă nu le avem disponibile, trebuie pur și simplu să le instalăm cu următoarea comandă:
solicitări de instalare pipÎntr-o consolă secundară vom începe aplicația noastră flasko astfel încât serverul să fie activ și să poată trimite solicitările de la Piton. În consola noastră interactivă Piton la care accesăm scriind cuvântul piton, trebuie să facem următoarele:
requests.post ('http://127.0.0.1:5000/ create-product', data = {'name': 'product1', 'price': '50'})Ceea ce am făcut a fost să trimitem o solicitare prin POST la ruta noastră care adaugă elementele în baza de date, parametrii sunt trecuți într-un dicționar Piton care se aseamănă foarte mult cu un obiect JSON.
Acest lucru ar trebui să ne ofere un cod 200 care înseamnă că am reușit în mod eficient la solicitarea noastră, putem vedea acest lucru în următoarea imagine:
Cu aceasta am terminat acest tutorial, știm deja cum să creăm modele în BalonÎn plus, am învățat să manipulăm elementele de bază, dar foarte utile ORM SQLAlchemy, unde aceste componente sunt foarte importante atunci când construim aplicații mult mai mari, deoarece ne vor permite să obținem rezultate mai complexe cu mai puțină muncă.