Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Correspondance de route simple
Dans un framework web, le routeur est le composant qui decide quelle fonction appeler en fonction de l'URL. Par exemple, /users/42 doit appeler la fonction qui affiche le profil de l'utilisateur 42.
Le routeur compare l'URL a des patterns. Un pattern comme /users/<id> signifie : le premier segment doit etre 'users', et le deuxieme segment est capture dans le paramètre 'id'.
Écris une fonction match_route(pattern, url) qui vérifie si une URL correspond a un pattern. Retourne un dictionnaire des paramètres captures, ou None si l'URL ne correspond pas.
assert match_route('/users/<id>', '/posts/1') is None
+ 0 tests cachés
Indices (3 disponibles)
Solution officielle
def match_route(pattern, url):
p_parts = pattern.strip('/').split('/')
u_parts = url.strip('/').split('/')
if len(p_parts) != len(u_parts):
return None
params = {}
for p, u in zip(p_parts, u_parts):
if p.startswith('<') and p.endswith('>'):
params[p[1:-1]] = u
elif p != u:
return None
return params