Cómo detectar un dispositivo móvil en Django con Mobi

Cómo detectar un dispositivo móvil en Django con Mobi

Django python mobile móvil

Esta NO es la forma correcta de detectar un móvil con Django…

Cuando estamos programando una aplicación web es probable que necesitemos distinguir si el usuario se conecta desde su dispositivo móvil (tablet, smartphone, iphone, etc) o desde un PC. En función de ello podremos segmentar operaciones y vistas.

En Django existen múltiples formas de hacerlo. La más básica consistiría en extraer el Cliente de Usuario (User-Agent)  y cotejarlo. Demasiado tedioso.

La mejor opción desde mi punto de vista es utilizar un middleware llamado django-mobi.

En Django, un middleware no es más que una especie de plugin escrito en Python que realiza ciertas tareas de bajo nivel sin que el programador tenga que esforzarse demasiado. Lo que en mi pueblo denominan “framework”.

Como decía, Mobi permite detectar teléfonos móviles, tablets y pantallas pequeñas de forma muy sencilla.

Instalación paso a paso

1) Descargar el paquete django-mobi disponible aquí.

2) Descomprimir la carpeta Mobi en la raíz de nuestro proyecto.

3) Localizar en el archivo de configuración settings.py la tupla de middlewares

[python]MIDDLEWARE_CLASSES[/python]

y añadir la siguiente línea (ojo con respetar la sintaxis):

[python](…,
mobi.MobileDetectionMiddleware,)[/python]

4) Importar dentro del archivo views.py o en la vista necesaria.

Ya está. Ahora veremos algunos casos de uso:

Distinción simple entre móvil, tablet y PC

Tan sencillo como obtener una variable cuyo valor sea True si es un dispositivo móvil o False si es cualquier otro tipo de dispositivo. La mecánica es la siguiente:

1) Importamos el método necesario para este caso particular:

[python]from mobi.decorators import detect_mobile[/python]

2) El contenido de request.mobile será True si el navegador del dispositivo que llama a la función es móvil, y viceversa.

[python]
@detect_mobile
def miDetector(request):
if request.mobile:
#Hacer cosas para dispositivos moviles
else:
#Hacer cosas para otros dispositivos
[/python]

También hay una forma de distinguir entre tablet o móvil. Consiste en utilizar un request.tablet igual que anteriormente hicimos con request.mobile. Para ello es necesario incluir la siguiente variable en el archivo de configuración settings.py:

[python]MOBI_DETECT_TABLET = True[/python]

Cómo redirigir automáticamente hacia una versión mobile

Nada más simple. Lo que hay que hacer es:

1) De nuevo, abrir el archivo settings.py y localizar la tupla:

[python]MIDDLEWARE_CLASSES[/python]

2) Añadir la siguiente línea:

[python](…
mobi.MobileRedirectMiddleware,)[/python]

3) Añadir una nueva constante de configuración al mismo archivo settings.py:

[python]MOBI_REDIRECT_URL = "http://URL.mobi"[/python]

Donde http://URL.mobi es la URL de la web a donde quieres redirigir en caso de detectar un dispositivo móvil.

Hasta aquí este minitutorial. No dudéis en preguntarnos cualquier cosa.

Previous ¿Tienes una idea? Primero diseña tu modelo de negocio
Next 8 herramientas gratuitas para convertirte en un gurú de CSS3

About author

Angel
Angel 172 posts

Siempre quise ser inventor y escritor: por lo primero me hice ingeniero, y en cuanto a lo segundo, escribo aquí de vez en cuando sobre telecomunicaciones y tecnología. Me gustan los robots, los perretes y los libros (analógicos).

You might also like

Inteligencia Artificial 1Comments

Inteligencia Artificial en Videojuegos móviles

Para garantizar el éxito comercial de los videojuegos para móviles es necesario asegurar un algoritmo de Inteligencia Artificial que suponga al jugador un desafío ni demasiado elevado ni demasiado bajo. Pese

Tecnologia & Ciencia 0 Comentarios

AirlineCheckings.com, checking automático de tus vuelos

Leyendo recientemente mi timeline me topé con una herramienta que pretende evitar el engorroso proceso de checking online al que las compañías aéreas nos obligan a hacer en las 48

Tecnologia & Ciencia 1Comments

Mailbird, un efectivo cliente de escritorio para Gmail, Calendar, Facebook y Dropbox

¿Sois usuarios habituales de Gmail, Calendar, DropBox, Facebook? ¿Tenéis una serie de pestañas fijas en vuestro explorador que lo ralentizan pero son indispensables? La interfaz web de Gmail hizo que

1 Comentario

  1. Bitacoras.com
    junio 27, 21:59 Reply

    Información Bitacoras.com…

    Valora en Bitacoras.com: Esta NO es la forma correcta de detectar un móvil con Django… Cuando estamos programando una aplicación web es probable que necesitemos distinguir si el usuario se conecta desde su dispositivo móvil (tablet, smartphone, ……

Deja un comentario