No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Flask

Curso de Flask

Bernardo Cassina

Bernardo Cassina

Ciclos de Request y Response

8/36
Recursos

Request-Response: es uno de los métodos básicos que usan las computadoras para comunicarse entre sí, en el que la primera computadora envía una solicitud de algunos datos y la segunda responde a la solicitud.

Por lo general, hay una serie de intercambios de este tipo hasta que se envía el mensaje completo.

Por ejemplo: navegar por una página web es un ejemplo de comunicación de request-response.

Request-response se puede ver como una llamada telefónica, en la que se llama a alguien y responde a la llamada; es decir hacemos una petición y recibimos una respuesta.

Aportes 28

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En mi caso a mí me aparece como None la IP

Si quieren probar su proyecto en diferentes dispositivos conectados a su misma red pueden correr la aplicación con el comando

flask run --host=0.0.0.0

después solo escriben la dirección IP de la máquina en la que está corriendo la aplicación más el puerto ej. 192.168.0.3:5000

Que ventajas tiene el utilizar redirect y cookies en la forma en la que se utilizó en esta clase?

Les adjunto mi versión de código, la cual se ejecuta directamente desde el main.py

from flask import Flask, request, make_response, redirect


app = Flask(__name__)

@app.route('/')
def index():

    user_ip = request.remote_addr
    make = redirect('/hello')
    response = make_response(make)
    response.set_cookie('user_ip', user_ip)

    return response

@app.route('/hello')
def hello():    

    mensaje = 'Hola Mundo!!'
    user_ip = request.cookies.get('user_ip')

    return mensaje + user_ip

if __name__ == "__main__":
    
    app.run(debug=True)

También pueden crear rutas dinámicas, copien el siguiente código y en su navegador vayan a la ruta “127.0.0.1:5000/hello/<user>” y user sustitúyanlo por cualquier nombre.

Mis apuntes

En esta clase se hizo la creación de una nueva ruta donde se va guardar la ip en una cookie para luego ser redirigido a la nueva ruta donde se mostrara el mensaje que ya hicimos en las clases anteriores. Para ello se hizo lo siguiente;

  1. Crear una nueva ruta llamada hello @app.route('/hello')
  2. Importar los objetos make_response y redirect
  3. Crear la variable response = make.response(redirect(’/hello’))
  4. Asignarle una cookie con response.set_cookie(’user_ip’, user_ip)
  5. Retornar la variable response con return response
  6. En la ruta @app.route('/') asignar valor a la variable user_ip con user_ip = request.cookies.get('user_ip')
from flask import Flask, request, make_response, redirect

app = Flask(__name__)

@app.route('/')
def index():
    user_ip = request.remote_addr

    response = make_response(redirect('/hello'))
    response.set_cookie('user_ip', user_ip)

    return response

@app.route('/hello')
def hello():

    user_ip = request.cookies.get('user_ip')

    return 'Hello Platzi, tu IP es {}'.format(user_ip)

Code

from flask import Flask, request, make_response, redirect

app = Flask(__name__)

@app.route('/')
def index():
    user_ip = request.remote_addr

    response = make_response(redirect('/hello'))
    response.set_cookie('user_ip', user_ip)

    return response

@app.route('/hello')
def hello():

    user_ip = request.cookies.get('user_ip')

    return 'Hello Platzi, tu IP es {}'.format(user_ip)

Un blog que explica de manera clara el tema del manejo de cookies es este:

https://lineadecodigo.com/python/gestionar-cookies-flask

¿llevas horas ejecutando el código y por alguna razón a veces funciona y otras veces no? NO TE COMPLIQUES! Usa el navegador que por defecto utilizamos en el curso, por alguna razón existen problemas de compatibilidad entre el servidor local y los navegadores modernos no inicializan bien algunos parámetros.

No te rindas, compañero!

Este curso es uno de lo mejores y mejor explicados en los que he estado. Muy buen profesor, explica super claro y sin afanes.

acá encontramos los atributos y metodos de request aquí

Que son las cookies: Las cookies son usualmente son pequeños archivos de texto y se almacenan en el directorio del navegador de tu ordenador o en las subcarpetas de datos de programa.

Las cookies se crean cuando utilizas tu navegador para visitar un sitio web que las utiliza para hacer un seguimiento de tus movimientos por el sitio, ayudarte a indicarte dónde dejaste la navegación, recordar tu inició de sesión y selección de tema, preferencias y otras funciones de personalización.

A menudo las cookies son indispensables en las webs que tienen bases de datos muy grandes, requieren inicio de sesión, tienen temas personalizables y otras funciones avanzadas.


Mas informacion: Cookies

Que buen profe 😄

Aprendí varias cosas en esta clase: 1. Para poder ejecutar lo que hay dentro de una ruta debo crear una función que contenga todo lo que quiero realizar. (Intente hacer una ruta sin función, pero no sirvió). 2. Ley los comentarios y ya estaba familiarizado con el f-string, sin embargo, no sabía que también funcionaba aquí. 3. Cuando declaró una cookie primero le pongo su nombre identificador y luego la variable de la cual extraerá el valor. 4. Puedo usar los prints como algo similar a una alert/Console.log de javascript (Yo consideré más que es un console.log) y así me di cuenta de que cuando mostraba la ruta '/Hello' me mostraba que la dirección IP era NONE debido a que en vez de poner User\_ID había puesto User\_Ip. 5. Y superimportante debo de declarar en el CMD lo siguiente para poder ejecutar el flask run: FLASK\_APP="Aquí va el nombre del archivo sin comillas".py En fin, cosas que pasan cuando suceden. Por último, también evidencié que sería de vital importancia el curso de terminal de comandos de platzi para entender un poco mejor, que CMD y POWERSHELL no usan los mismos comandos. XOXO comunidad de platzi.

Otra forma de usar el redirect es con una url_for
, esta va a generar una url completa a la ruta asignada por el metodo

    response = make_response(redirect(url_for('hello')))

En este caso con el metodo hello

Ciclos de Request y Response

Podemos crear y obtener cookies desde el browser de la siguiente manera:

from flask import Flask, request, make_response, redirect

app = Flask(__name__)

@app.route('/')
def index():
    user_ip = request.remote_addr

    response = make_response(redirect('/hello'))
    response.set_cookie('user_ip', user_ip)

    return response

@app.route('/hello')
def hello():
    user_ip = request.cookies.get('user_ip')
    return f'Tu dirección IP, (después de haberla obtenida con una cookie 🍪) es {user_ip}'

¿Así de sencillo?

from urllib import response
from flask import Flask, request, make_response, redirect

app = Flask(__name__)

# Ciclo de Response
@app.route('/')
def index ():
    user_ip = request.remote_addr

    response = make_response(redirect('/hello'))
    response.set_cookie('user_ip', user_ip)

    return response

# Ciclo de Request
@app.route('/hello')
def hello ():
    user_ip = request.cookies.get('user_ip')
    return 'Hola Platzi, tu IP es {}'.format(user_ip)
# import main Flask class and request object
from flask import Flask, request

# create the Flask app
app = Flask(__name__)

@app.route('/query-example')
def query_example():
    return 'Query String Example'

@app.route('/form-example')
def form_example():
    return 'Form Data Example'

@app.route('/json-example')
def json_example():
    return 'JSON Object Example'

if __name__ == '__main__':
    # run app in debug mode on port 5000
    app.run(debug=True, port=5000)

Mi code

from flask import Flask, request, make_response, redirect


app = Flask(__name__)

@app.route('/')
def index():
    user_ip = request.remote_addr
    response = make_response(redirect('/hello'))
    response.set_cookie('user_ip', user_ip)
    return response

@app.route('/hello')
def hello():
    user_ip = request.cookies.get('user_ip')
    return 'Hello World Platzi, tu IP es {}'.format(user_ip)```

Me da el siguiente error:

NameError: global name 'make_response' is not defined

from flask import Flask, request, make_response, redirect
app = Flask(name)

@app.route(’/’)
def index():
user_ip = request.remote_addr
response = make_response(redirect(’/hello’))
response.set_cookie(‘user_ip’, user_ip)

return response

@app.route(’/hello’)
def hello_world():
#creamos nueva variable de la ip que detectamos en el browser
user_ip = request.cookies.get(‘user_ip’)

return 'Hello, Word, tu IP es {}'.format(user_ip)

  • Request-Response: es uno de los métodos básicos que usan las computadoras para comunicarse entre sí.
  • redirect, redirecciona a otro lugar de la aplicación.
  • response, podemos establecer las cookies de sesión de usuario.
  • request, para conseguir los datos enviados por el navegados como las cookies

Bien, gracias.

que sencillo, muy chevere

chevere