Hello !
J'utilise Django pour faire tourner mes fonctions python.
Actuellement, dans mon fichier views, j'utilise cette fonction :
Cette fonction me retourne l'historique de la zone DNS du domaine indiqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 def dns_history(request): domain_name = request.POST.get("domain_na") print(domain_name) url = f"https://api.securitytrails.com/v1/history/{domain_name}/dns/a" print(type(domain_name)) headers = { "accept": "application/json", "APIKEY": "monAPI" } response = requests.get(url, headers=headers) print(response.text) return render(request, 'toolbox/dnshistory.html', {'history_a ' : response.text,'domain': domain_name})
Le problème, c'est que quand je lance mon script, il se lance deux fois.
Si je fais un print(type()) de mon domain_name, la première fois il apparait bien en str, mais la seconde fois il apparait en "None" :
C'est comme si mon formulaire se lancé deux fois avec rien dans le champ la deuxième fois.
Pourtant mon formulaire est classique :
La fonction est appelée suite à une requête HTTP GET et la deuxième fois, c'est une requête POST. Comme le code ne fait pas la différence entre les deux cas, le QueryDict est vide une fois sur deux et les get() retournent None. Cependant, je ne vois pas comment résoudre la situation. En utilisant que du GET ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <div class="container" id="cont_form"> <div class="row"> <form method="post" action=""> {% csrf_token %} <label for="domain_na"> Nom du domaine : </label> <input type="text" id="domain_na" name="domain_na"> <button type="submit" class="btn btn-primary ">Retrouver l'historique</button> </form> </div> </div>
Une idée ?
Partager