Maison  >  Article  >  développement back-end  >  Comment extraire les paramètres de requête d'une URL en Python, y compris Django ?

Comment extraire les paramètres de requête d'une URL en Python, y compris Django ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-28 20:27:02724parcourir

How to Extract Query Parameters from a URL in Python, Including Django?

Récupération des paramètres d'une URL

Question :

Étant donné une URL avec des paramètres de requête, comment pouvez-vous récupérer la valeur d'un paramètre spécifique ? Par exemple, étant donné l'URL « /some_path?some_key=some_value », vous souhaitez extraire la valeur de « some_key ». De plus, si vous utilisez Django, existe-t-il une méthode dans l'objet de requête pour vous aider dans cette tâche ?

Lors de l'utilisation de 'self.request.get('some_key')', la valeur attendue 'some_value' n'est pas renvoyée . Comment ce problème peut-il être résolu ?

Réponse :

Bien que l'extraction des paramètres d'URL ne soit pas spécifiquement liée à Django, la solution suivante est généralement applicable à Python :

Python 2 :

<code class="python">import urlparse

url = 'https://www.example.com/some_path?some_key=some_value'
parsed = urlparse.urlparse(url)
captured_value = urlparse.parse_qs(parsed.query)['some_key'][0]

print captured_value</code>

Python 3 :

<code class="python">from urllib.parse import urlparse
from urllib.parse import parse_qs

url = 'https://www.example.com/some_path?some_key=some_value'
parsed_url = urlparse(url)
captured_value = parse_qs(parsed_url.query)['some_key'][0]

print(captured_value)</code>

Dans les deux cas, 'parse_qs' renvoie une liste. L'indexation de la liste avec '[0]' récupère le premier élément, qui est la valeur souhaitée.

Solution Django facultative :

Référez-vous à la réponse fournie par @jball037 pour une solution spécifique à Django.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn