Comment vérifier si un visiteur est sur un téléphone (i.e. smartphone) ou sur un ordinateur avec un site web django ?

Published: 27 mars 2021

Tags: Django;

DMCA.com Protection Status

Pour un site web développé avec django pour vérifier si un visiteur est sur un appareil mobile ou sur un ordinateur, une solution est de regarder le http_user_agent

Vérifier le http_user_agent:

Vous pouvez obtenir le http_user_agent d'un visteur dans une vue (views.py) comme ceci:

user_agent = request.META['HTTP_USER_AGENT']

print(user_agent)

vous devriez obtenir quelque chose comme par exemple:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) 
AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/**.*.****.***
Safari/537.36

Note: user_agent varibale est une chaîne de caractères (string)

print(type(user_agent))

donne:

str

Vous pouvez ensuite aller sur ce lien
pour obtenir une liste des noms de navigateurs mobiles.

Maintenant, pour vérifier si un visiteur est sur un appareil mobile, faites simplement par exemple

if 'Mobile' in user_agent:
    print('Visitor is on mobile')
else:
    print('Visitor is not on mobile')

qui fonctionne pour la plupart des navigateurs mobiles. Ou créez une liste de mots-clés pour vérifier si un visiteur se trouve sur un appareil mobile:

keywords = ['Mobile','Opera Mini','Android']

user_agent = 'Mozilla/5.0 (Linux; Android 7.0; SAMSUNG SM-G955U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/5.4 Chrome/51.0.2704.106 Mobile Safari/537.36'

if any(word in user_agent for word in keywords):
    print('Visitor is on mobile device')
else:
    print('Visitor is on desktop')

donne par exemple

Visitor is on mobile device

Références