Advertisement
teslariu

webserver preliminar

Sep 13th, 2023
1,335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.89 KB | None | 0 0
  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":"Juan", "cursos":4};
  11.      {"id":2, "nombre":"Ana", "cursos":1};
  12. ]
  13.  
  14. """
  15. alumnos = []
  16.  
  17. @app.route("/")
  18. def home():
  19.     return "<em>Hola</em> a <strong>todos</strong>"
  20.    
  21. @app.route("/admin")
  22. def admin():
  23.     return "<h2>En construcción...</h2>"
  24.    
  25.    
  26. @app.route("/alumnos", methods=['GET','POST','PUT','DELETE'])
  27. def get_alumnos():
  28.    
  29.     if request.method == "GET":
  30.         return jsonify({"alumnos":alumnos})
  31.    
  32.        
  33.     elif request.method == "POST":
  34.         if not alumnos:
  35.             id_alumno = 1
  36.         else:
  37.             id_alumno = alumnos[-1]['id'] + 1
  38.        
  39.         alumno = {
  40.             'id':id_alumno,
  41.             'nombre': request.json['nombre'],
  42.             'cursos': request.json['cursos']
  43.         }
  44.         alumnos.append(alumno)
  45.         return jsonify("Alumno añadido")
  46.        
  47.    
  48.     elif request.method == "PUT":
  49.         id_alumno = request.json['id']
  50.         for alumno in alumnos:
  51.             if id_alumno ==  alumno.get('id'):
  52.                 if request.json['nombre'] is not None:
  53.                     alumno['nombre'] = request.json['nombre']
  54.                 if request.json['cursos'] is not None:
  55.                     alumno['cursos'] = request.json['cursos']
  56.                 return jsonify("Datos modificados")
  57.         return jsonify(f"Alumno con id={id_alumno} no encontrado")
  58.        
  59.        
  60.     elif request.method == "DELETE":
  61.         id_alumno = request.json['id']
  62.         for alumno in alumnos:
  63.             if id_alumno ==  alumno.get('id'):
  64.                 alumnos.remove(alumno)
  65.                 return jsonify("Alumno borrado")
  66.         return jsonify(f"Alumno con id={id_alumno} no encontrado")
  67.                
  68.    
  69. @app.route('/alumnos/<int:i>')
  70. def ver_alumno(i):
  71.     try:
  72.         return jsonify({"alumno":alumnos[i-1]})
  73.     except IndexError:
  74.         return jsonify(f"Alumno id={i} no hallado")
  75.  
  76.  
  77.  
  78.    
  79.    
  80.    
  81. if __name__ == "__main__":
  82.     app.run(debug=True)
  83.    
  84. # LINUX
  85. # export FLASK_APP=runserver.py
  86. # flask run
  87.  
  88. # WINDOWS
  89. # set FLASK_APP=runserver.py
  90. # flask run
  91.  
  92.  
  93.  
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement