Differences

This shows you the differences between two versions of the page.

Link to this comparison view

isi:laboratoare:06 [2024/11/08 21:29]
alexandru.predescu [Obiective laborator]
isi:laboratoare:06 [2024/11/11 11:43] (current)
alexandru.predescu [Obiective laborator]
Line 56: Line 56:
  
 2. Verificați instalarea rulând comanda în terminal: ''​python --version''​. ​ 2. Verificați instalarea rulând comanda în terminal: ''​python --version''​. ​
 +
 +3. Descarcati scheletul de cod de [[https://​github.com/​ACS-ISI/​Backend_Server|aici]].
  
 <​note>​ <​note>​
 Dacă aveți mai multe versiuni de Python instalate, selectați versiunea dorită astfel: ''​py -3''​ (3.x) sau ''​python3''​ (pe Linux), respectiv versiunea de package manager: ''​py -3 -m pip''​ sau ''​pip3''​ (pe Linux) Dacă aveți mai multe versiuni de Python instalate, selectați versiunea dorită astfel: ''​py -3''​ (3.x) sau ''​python3''​ (pe Linux), respectiv versiunea de package manager: ''​py -3 -m pip''​ sau ''​pip3''​ (pe Linux)
  
-Pentru a instala dependențele specificate într-un fișier:+Pentru a instala dependențe folosim package manager-ul ''​pip'':​ 
 + 
 +''​pip install flask flask-sqlalchemy''​ 
 + 
 +Pentru a instala dependențele specificate într-un fișier ​folosim flag-ul ''​-r''​:
  
 ''​py -3 -m pip install -r requirements.txt''​ ''​py -3 -m pip install -r requirements.txt''​
Line 67: Line 73:
  
 Alternativă pentru Linux: Alternativă pentru Linux:
 +
 +''​pip install -r requirements.txt''​
  
 ''​pip3 install -r requirements.txt''​ ''​pip3 install -r requirements.txt''​
 +
 +''​python app.py''​
  
 ''​python3 app.py''​ ''​python3 app.py''​
Line 74: Line 84:
 </​note>​ </​note>​
  
-3. Descarcati scheletul de cod de [[https://​github.com/​ACS-ISI/​Backend_Server|aici]]. +4. Deschideti proiectul folosind IDE-ul preferat, de exemplu Visual Studio Code cu extensia Python sau un IDE specializat pentru Python, precum [[https://​www.jetbrains.com/​pycharm/​|PyCharm]] ​și rulați comanda pentru instalarea dependențelor din fișierul //​requirements.txt//​.
- +
-4. Deschideti proiectul folosind IDE-ul preferat, de exemplu Visual Studio Code cu extensia Python sau un IDE specializat pentru Python, precum [[https://​www.jetbrains.com/​pycharm/​|PyCharm]] ​si rulati comenzile urmatoare in terminal: ''​pip install flask flask-sqlalchemy''​.+
  
 <note tip> <note tip>
-**Flask-SQLAlchemy** este o extensie a framework-ului Flask care facilitează lucrul cu baze de date relaționale în aplicațiile Python.+[[https://​flask-sqlalchemy.readthedocs.io/​en/​stable/​|Flask-SQLAlchemy]] este o extensie a framework-ului Flask care facilitează lucrul cu baze de date relaționale în aplicațiile Python.
  
-Vom folosi **Flask-SQLAlchemy** pentru a crea o bază de date **in-memory**, fără a fi necesară configurarea unui server SQL dedicat. ​+Vom folosi **Flask-SQLAlchemy** pentru a crea o bază de date SQLite (pentru simplitate), fără a fi necesară configurarea unui server SQL dedicat. ​
  
 </​note>​ </​note>​
Line 88: Line 96:
  
  
 +<note tip>
 +
 +De obicei, cererile de tip GET nu conțin date în body și se parametrizează astfel:
 +
 +Exemplu cereri GET cu parametru în URL:
 +
 +''​http://​localhost:​5000/​login?​username=alex&​password=1234''​
 +
 +<code python>
 +@app.route('/​login',​ methods=['​GET'​])
 +def login():
 +    username = request.args.get('​username'​)
 +    print(username)
 +    password = request.args.get('​password'​)
 +    print(password)
 +    return jsonify({"​status":​ True})
 +</​code>​
 +
 +</​note>​
  
 === Task === === Task ===
Line 93: Line 120:
 Completati **TO DO**-urile din scheletul de cod, acestea sunt **self explanatory**. Scopul acestora este sa intelegeti cum sa interactionati cu o baza de date prin intermediul unui **server**. Prin aceste metode numite **endpoint-uri** puteti realiza comunicarea dintre client si server. Completati **TO DO**-urile din scheletul de cod, acestea sunt **self explanatory**. Scopul acestora este sa intelegeti cum sa interactionati cu o baza de date prin intermediul unui **server**. Prin aceste metode numite **endpoint-uri** puteti realiza comunicarea dintre client si server.
 <note tip> <note tip>
-**Cititi ​comentariile din schelet!**+**Urmăriți ​comentariile din schelet** ​și tutorialul Flask-SQLAlchemy [[https://​flask-sqlalchemy.readthedocs.io/​en/​stable/​quickstart/​|Quick Start]] pentru a implementa operațiile cu baza de date necesare pentru implementarea funcționalităților de lucru cu datele. Alternativ, folosiți direct biblioteca [[https://​docs.python.org/​3/​library/​sqlite3.html|sqlite3]] (vezi exemple în scheletul de cod) pentru a interoga baza de date folosind sintaxă SQL.
 </​note>​ </​note>​
  
Line 102: Line 129:
 **Test Case:** am adaugat 3 task-uri folosind endpoint-ul de adaugat task-uri, iar cand apelez endpoint-ul prin care obtin o lista cu task-uri **Test Case:** am adaugat 3 task-uri folosind endpoint-ul de adaugat task-uri, iar cand apelez endpoint-ul prin care obtin o lista cu task-uri
 acesta returneaza cele 3 task-uri adaugate anterior. acesta returneaza cele 3 task-uri adaugate anterior.
 +
 +**Verificați funcționarea aplicației folosind următoarele metode:**
 +
 +== Testarea endpoint-urilor cu Postman ==
  
 {{:​isi:​laboratoare:​postmantutorial.png?​700|}} {{:​isi:​laboratoare:​postmantutorial.png?​700|}}
Line 110: Line 141:
 2. Pentru a adauga calea verificati adnotarea fiecarui endpoint (@app.route("/​task/​cale"​)). 2. Pentru a adauga calea verificati adnotarea fiecarui endpoint (@app.route("/​task/​cale"​)).
  
-3. Verificati tipul metodei (POST/ GET/ ETC.)+3. Verificati tipul metodei (POST/ GET/ etc.)
  
 </​note>​ </​note>​
 +
 +== Explorarea bazei de date cu SQLite Browser ==
 +
 +Instalați [[https://​sqlitebrowser.org/​|DB Browser for SQLite]] (versiunea portabilă). Acesta vă permite să accesați o bază de date SQLite folosind un editor vizual. Verificați conținutul bazei de date: deschideți din editor fișierul **tasks.db** din folder-ul **instance**
 +
 +{{:​isi:​laboratoare:​lab6:​sqlite_browser.png?​600|}}
 +
 +== Testarea end-to-end cu aplicația web client ==
 +
 +Rulați aplicația client din folder-ul //​frontend//​ prin deschiderea fișierului //​index.html//​ cu un browser. Verificați funcționarea sistemului integrat client-server. Examinați codul aplicației,​ identificați modul în care se transmit cererile HTTP și cum se realizează interfața cu utilizatorul.
 +
  
isi/laboratoare/06.1731094194.txt.gz · Last modified: 2024/11/08 21:29 by alexandru.predescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0