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!