En mi caso a mí me aparece como None la IP
Fundamentos de Flask
Qué aprenderás sobre Flask
¿Cómo funcionan las aplicaciones en internet?
¿Qué es Flask?
Instalación de Python, pip y virtualenv
Hello World Flask
Debugging en Flask
Request y Response
Ciclos de Request y Response
Uso de templates y archivos estáticos
Templates con Jinja 2
Estructuras de control
Herencia de templates
Include y links
Uso de archivos estáticos: imágenes
Configurar páginas de error
Extensiones de Flask
Flask Bootstrap
Configuración de Flask
Implementación de Flask-Bootstrap y Flask-WTF
Uso de método POST en Flask-WTF
Desplegar Flashes (mensajes emergentes)
Pruebas básicas con Flask-testing
Proyecto
Planteamiento del proyecto: To Do List
App Factory
Uso de Blueprints
Blueprints II
Base de datos y App Engine con Flask
Configuración de Google Cloud SDK
Configuración de proyecto en Google Cloud Platform
Implementación de Firestore
Autenticación de usuarios: Login
Autenticación de usuarios: Logout
Signup
Agregar tareas
Eliminar tareas
Editar tareas
Deploy a producción con App Engine
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Bernardo Cassina
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
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)
Aqui hay información que nos puede ayudar: https://tedboy.github.io/flask/generated/generated/flask.Request.html
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;
@app.route('/hello')
make_response
y redirect
response = make.response(redirect(’/hello’))
response.set_cookie(’user_ip’, user_ip)
return response
@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)
Aqui podras encontrar complemento al tema:
https://www.digitalocean.com/community/tutorials/processing-incoming-request-data-in-flask
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:
¿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 😄
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
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)
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 cookiesBien, gracias.
que sencillo, muy chevere
chevere
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?