Python 3.8, problème avec un script
Bonjour à tous,
J'ai un soucis avec un script python mixant python3.8 et html, le tout tournant sous un serveur apache local (xampp). J'ai d'autre page python/html qui tourne sur mon pc sans problème, donc je ne pense pas que mon problème vienne de la ...
Je vous met les parties des scripts posant problème :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#!C:\Users\...\AppData\Local\Programs\Python\Python38-32\python.exe
print('content-type: text/html; charset-utf-8\n\n')
html=""" <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Suivi cathéter</title>
<link rel="stylesheet" href="../css/css_lien.css" />
</head>
<body>
<center>
<h2 class="suivi"> Suivi cathéter </h2>
"""
print(html)
import cgi
import cgitb
from id import id_suivi
form = cgi.FieldStorage()
try:
print(form.getvalue('patient'))
if form.getvalue('patient') == None: #la variable existe mais elle est vide
print('la variable patient est vide')
id_suivi() #du coup on affiche le formulaire de sélection
else:
print('la variable patient vaut : {}'.format(form.getvalue('patient'))) #on affiche la variable form.getvalue('patient')
except NameError: #la variable form.getvalue('patient') n'existe pas
id_suivi()
html="""
<br /><br />
<a href ='../Accueil_BDD_CATHEVASC.py'> Retour au menu</a>
</body>
</html>
"""
print(html) |
et cela nécessite un autre fichier appelé id dont le code est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#!C:\Users\...\AppData\Local\Programs\Python\Python38-32\python.exe
# -*- coding: utf-8 -*-
def id_suivi():
import pandas as pd
form = cgi.FieldStorage()
df=pd.read_csv('../result/init.csv', sep=';')
nom=df['id']
print('<FORM action="suiviKT.py" method="post">')
print('<SELECT id="patient" name="patient"><option value="0">Choisir un patient</option>')
for p in enumerate(nom):
ligne=df.loc[df['id']==p[1],:]
print('<option value="{}"> {}, {}, {}, {}</option>'. format(ligne['id'].mode()[0], p[1], ligne['prenom'].mode()[0], ligne['typeKT'].mode()[0], ligne['numKT'].mode()[0]))
print('</SELECT>')
print('<button type="submit">Choisir</button>') |
Comme on voit ce code id va chercher les données dans un fichier csv
Les codes sont volontairement séparés car j'utilise le 'id_suivi()' dans d'autre fichier.
Ce que je veux faire : afficher 'id_suivi' si la variable form.getvalue('patient') n'existe pas ou si celle-ci est vide
Mais ce que j’obtiens avec le code c'est "None la variable patient est vide " mais après il y a une erreur : ca n'affiche pas le formulaire 'id_suivi()'
J'ai également essayé de faire un del form.getvalue('patient') à la fin de mon try mais ca plante ...
Je pense que l'erreur ne doit pas être très compliqué.
Merci beaucoup pour votre aide !
PS : Je débute en python donc il est fort probable qu'il y ait un moyen de faire plus simple sur mon code ;) Je suis preneur de toute les remarques