bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


python_web

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
python_web [2022/11/29 20:12]
enric_mieza_sanchez [Exercici]
python_web [2022/12/13 18:43] (actual)
enric_mieza_sanchez [Testing]
Línia 13: Línia 13:
 Referències: Referències:
   * Per desenvolupar en Python necessitarem [[Python venv]]   * Per desenvolupar en Python necessitarem [[Python venv]]
 +  * L'article segueix a [[Python Web Test]]
  
 {{tag> #Daw #DawMpDual #DawMp07Uf1 #DawMp07Uf02 #DawMp07Uf03 #DawMp07Uf04 #DawMp07Uf1 #DawMp07Uf02 #DawMp07Uf03 #DawMp07Uf04 #Ciber #CiberMp03 #Ceti #CetiMp03 python web flask }} {{tag> #Daw #DawMpDual #DawMp07Uf1 #DawMp07Uf02 #DawMp07Uf03 #DawMp07Uf04 #DawMp07Uf1 #DawMp07Uf02 #DawMp07Uf03 #DawMp07Uf04 #Ciber #CiberMp03 #Ceti #CetiMp03 python web flask }}
 +
  
 \\ \\
Línia 247: Línia 249:
   * [[https://jinja.palletsprojects.com/en/2.11.x/templates/#include|Includes]] és una senzilla manera d'afegir capçalera i //footers// iguals a totes les nostres pàgines. Us recomano utilitzar això per començar.   * [[https://jinja.palletsprojects.com/en/2.11.x/templates/#include|Includes]] és una senzilla manera d'afegir capçalera i //footers// iguals a totes les nostres pàgines. Us recomano utilitzar això per començar.
   * [[https://jinja.palletsprojects.com/en/2.11.x/templates/#template-inheritance|Herència de plantilles]] és un mètode una mica més sofisticat amb alguns avantatges, però costa una mica més d'entendre. Cal definir una pàgina //master// dividida en ''blocks'' o seccions, i després derivar les pàgines filles (on podem definir o sobreescriure cada ''block'').   * [[https://jinja.palletsprojects.com/en/2.11.x/templates/#template-inheritance|Herència de plantilles]] és un mètode una mica més sofisticat amb alguns avantatges, però costa una mica més d'entendre. Cal definir una pàgina //master// dividida en ''blocks'' o seccions, i després derivar les pàgines filles (on podem definir o sobreescriure cada ''block'').
- 
- 
- 
  
 \\ \\
  
-===== Testing ===== +===== Per a saber-ne més ===== 
-Anem a veure com podem testejar les nostres aplicacions fetes amb Flask.+Hem fet un repàs de les funcions bàsiques del //framework// Flask. Ens queda un parell de temes per cobrir tots els temes essencials, i que podeu seguir investigant en el propi [[https://flask.palletsprojects.com/quickstart/|quickstart de Flask]]:
  
-Fem-li un cop d'ull a la [[https://flask.palletsprojects.com/testing/|documentació de test amb Flask]].+  * Persistència en base de dades 
 +  * Sessions
  
-Primera cosa que cal fer, instal·lar el mòdul de tests ''pytest'': 
-  (env) $ pip install pytest 
  
-Després, ens diuen que fem un **test skeleton**, però l'exemple que ens donen té una configuració avançada per posar punt la base de dades, utilitzant una //app factory//, etc.+També hi ha aquest cursos que poden ser interessants: 
 +  [[https://courses.miguelgrinberg.com/p/flask-mega-tutorial|mega-tutorial de Flask de Miguel Grinberg]] que té un índex prometedor. Podeu fer un cop d'ull les introduccions, la resta del curs és de pagament. 
 +  * [[https://platzi.com/cursos/flask/|Aquest curs de Flask de Plazi.com]] pinta molt béamb videotutorials en castellà.
  
-Nosaltres implementarem una versió simplificada sobre l'arxiu ''test_web.py'':+\\
  
-<file python test_web.py > 
-import pytest 
  
-from web import app +===== Exercici : login =====
- +
-@pytest.fixture +
-def client(): +
-    with app.test_client() as client: +
-        yield client +
- +
-def test_landing_page(client): +
- rv client.get('/'+
- assert b'Hello, World' in rv.data +
-</file> +
- +
-Correm els tests amb la comanda ''pytest'': +
-<code> +
-(env) $ pytest +
-============================ test session starts ============================= +
-platform linux -- Python 3.8.10, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 +
-rootdir/home/enric/dev21/basicflask +
-collected 1 item                                                              +
- +
-test_web.py .                                                          [100%] +
- +
-============================= 1 passed in 0.09s ============================== +
-</code> +
- +
-**Com podem veure, ''pytest'' posa en marxa els tests dels arxius que comencen per ''test_'', i dins d'aquests, corre les funcions que també comencin per ''test_''.** +
- +
-\\ +
- +
-===== Exercici de login i logout =====+
 <WRAP todo> <WRAP todo>
 Pàgina de login de l'app: Pàgina de login de l'app:
Línia 305: Línia 274:
   * Assegura't que la pàgina de resposta al formulari respon amb un missatge que contingui un "OK" a la pàgina, i si el nom d'usuari és erroni respon adequadament amb un missatge que contingui "ERROR".   * Assegura't que la pàgina de resposta al formulari respon amb un missatge que contingui un "OK" a la pàgina, i si el nom d'usuari és erroni respon adequadament amb un missatge que contingui "ERROR".
   * **Comprova manualment el punt anterior. Abans de fer els tests automàtics cal fer-los manuals PER A TOTS ELS CASOS** (tant si funciona OK, com si dona error).   * **Comprova manualment el punt anterior. Abans de fer els tests automàtics cal fer-los manuals PER A TOTS ELS CASOS** (tant si funciona OK, com si dona error).
-</WRAP> 
- 
-<WRAP todo> 
-Testejant l'app. 
- 
-  * Examina [[https://flask.palletsprojects.com/en/1.1.x/testing/#logging-in-and-out|la secció "logging in and out" de la documentació dels tests]]. 
-  * Afegeix dues funcions de test que comprovin el següent: 
-    - Que els usuaris i contrasenyes que has //hardcodejat// al codi es loguen correctament. 
-    - Que una combinació usuari/contrasenya que no ha estat introduïda no funciona i dona el missatge d'error. 
 </WRAP> </WRAP>
  
 \\ \\
  
-===== Per a saber-ne més ===== +===== Testing i + =====
-Hem fet un repàs de les funcions bàsiques del //framework// Flask. Ens queda un parell de temes per cobrir tots els temes essencials, i que podeu seguir investigant en el propi [[https://flask.palletsprojects.com/quickstart/|quickstart de Flask]]:+
  
-  * Persistència en base de dades +Aquest article continua a [[Python Web Test]] a [[Docker Flask]].
-  * Sessions +
- +
- +
-També hi ha aquest cursos que poden ser interessants: +
-  * [[https://courses.miguelgrinberg.com/p/flask-mega-tutorial|mega-tutorial de Flask de Miguel Grinberg]] que té un índex prometedor. Podeu fer un cop d'ull les introduccions, la resta del curs és de pagament. +
-  * [[https://platzi.com/cursos/flask/|Aquest curs de Flask de Plazi.com]] pinta molt bé, amb videotutorials en castellà.+
  
 \\ \\
  
python_web.1669752747.txt.gz · Darrera modificació: 2022/11/29 20:12 per enric_mieza_sanchez