Advertisement
teslariu

webserver

Dec 11th, 2021
681
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. from flask import Flask, jsonify, request
  5.  
  6. app = Flask(__name__)
  7.  
  8. """
  9. alumnos = [
  10.     {'id':1, 'nombre':'ale', 'cursos':5},
  11.     {'id':2, 'nombre':'ana', 'cursos':3},
  12.     {'id':3, 'nombre':'juana', 'cursos':1},
  13. ]
  14. """
  15. alumnos = []
  16.  
  17. @app.route("/")
  18. def home():
  19.     return "<html><h2><em>Hola</em> a todos</h2></html>"
  20.    
  21. @app.route('/alumno', methods=['GET','POST','PUT','DELETE'])
  22. def alumno():
  23.     if request.method == "GET":
  24.         return jsonify({"alumnos":alumnos})
  25.    
  26.     elif request.method == "POST":
  27.         if not alumnos:
  28.             codigo = 1
  29.         else:
  30.             codigo = alumnos[-1]['id'] + 1
  31.         alumno = {
  32.             'id': codigo,
  33.             'nombre': request.json['nombre'],
  34.             'cursos': request.json['cursos']
  35.         }
  36.         alumnos.append(alumno)
  37.         return jsonify("Alumno añadido")
  38.        
  39.     elif request.method == "PUT":
  40.         codigo = request.json['id']
  41.         for alumno in alumnos:
  42.             if codigo == alumno.get('id'):
  43.                 if request.json['nombre'] is not None:
  44.                     alumno['nombre'] = request.json['nombre']
  45.                 if request.json['cursos'] is not None:
  46.                     alumno['cursos'] = request.json['cursos']
  47.                 return jsonify("Datos modificados")
  48.         return jsonify(f"Alumno con id={codigo} no hallado")
  49.        
  50.     elif request.method == "DELETE":
  51.         codigo = request.json['id']
  52.         for alumno in alumnos:
  53.             if codigo == alumno.get('id'):
  54.                 alumnos.remove(alumno)
  55.                 return jsonify(f"Alumno con id={codigo} borrado")
  56.         return jsonify(f"Alumno con id={codigo} no hallado")
  57.        
  58. @app.route("/alumno/<int:i>")
  59. def get_alumno(i):
  60.     try:
  61.         return jsonify({"alumno":alumnos[i-1]})
  62.     except IndexError:
  63.         return jsonify(f"No existe el alumno con id={i}")
  64.        
  65. @app.route("/docentes")
  66. def docentes():
  67.     return "Sección de docentes"
  68.            
  69. @app.route("/admin")
  70. def admin():
  71.     return "<html><h1>En construcción</h1></html>"
  72.        
  73. if __name__ == "__main__":
  74.     app.run(debug = True)
  75.    
  76. # LINUX
  77. # export FLASK_APP=webserver.py
  78. # flask run
  79.  
  80. # WINDOWS
  81. # set FLASK_APP=webserver.py
  82. # python -m flask run
  83.        
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement