Advertisement
teslariu

webserver

Aug 29th, 2022
795
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.53 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # pip install Flask
  5. #
  6. # Servidor web que aloja una lista de alumnos con su ID, nombre y
  7. # cantidad de cursos
  8. # EJ:
  9. """
  10. alumnos = [
  11.        {'id':1, 'nombre':'Juana', 'cursos':5},
  12.        {'id':2, 'nombre':'Ana', 'cursos':2},
  13.        {'id':3, 'nombre':'Oscar', 'cursos':6},
  14.        {'id':4, 'nombre':'Luis', 'cursos':4},
  15. ]
  16. """
  17. from flask import Flask, jsonify, request
  18.  
  19. alumnos = []
  20.  
  21. # creo la pagina web
  22. app = Flask(__name__)
  23.  
  24. # creo el 'index.html' con decoradores
  25. @app.route("/")
  26. def index():
  27.     return "<h1><strong><em>HOME</em></strong></h1>"
  28.    
  29.    
  30. @app.route("/instructor")
  31. def instructor():
  32.     return "En construcción..."
  33.  
  34. # Habilito verbos web para modificar/ver datos de los alumnos
  35. @app.route("/alumno", methods=['GET','POST','PUT','DELETE'])
  36. def alumno():
  37.     if request.method == "GET":
  38.         return jsonify({'alumnos':alumnos})
  39.        
  40.        
  41.     elif request.method == "POST":
  42.         if not alumnos:
  43.             id_alumno = 1
  44.         else:
  45.             id_alumno = alumnos[-1]['id'] + 1
  46.         alumno = {
  47.             'id':id_alumno,
  48.             'nombre': request.json['nombre'],
  49.             'cursos': request.json['cursos']
  50.         }
  51.         alumnos.append(alumno)
  52.         return jsonify("Alumno añadido")
  53.        
  54.    
  55.     elif request.method == "PUT":
  56.         id_alumno = request.json['id']
  57.         for alumno in alumnos:
  58.             if id_alumno == alumno.get('id'):
  59.                 if request.json['nombre'] is not None:
  60.                     alumno['nombre'] = request.json['nombre']
  61.                 if request.json['cursos'] is not None:
  62.                     alumno['cursos'] = request.json['cursos']
  63.                 return jsonify("Datos modificados")
  64.         return jsonify(f"Alumno id={id_alumno} no encontrado")
  65.        
  66.        
  67.     elif request.method == 'DELETE':
  68.         id_alumno = request.json['id']
  69.         for alumno in alumnos:
  70.             if id_alumno == alumno.get('id'):
  71.                 alumnos.remove(alumno)
  72.                 return jsonify("Alumno borrado")
  73.         return jsonify(f"Alumno id={id_alumno} no encontrado")
  74.        
  75.        
  76. @app.route("/alumno/<int:i>")
  77. def get_alumno(i):
  78.     try:
  79.         return jsonify({"alumno":alumnos[i-1]})
  80.     except IndexError:
  81.         return jsonify(f"No existe el alumno con id={i}")
  82.        
  83.    
  84.    
  85. if __name__ == "__main__":
  86.     app.run(debug=True)
  87.    
  88. # LINUX:
  89. # export FLASK_APP=webserver.py
  90. # flask run
  91.  
  92. # WINDOWS
  93. # set FLASK_APP=webserver.py
  94. # flask run
  95.  
Tags: Flask
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement