2017-04-12 3 views
0

ravi de vous rencontrer tous. Je suis nouveau à Python CGI et j'ai un peu d'expérience avec PHP. En utilisant PHP, j'ai créé un programme de liste de tâches. Après l'avoir terminé, j'ai décidé d'écrire le même programme avec Python CGI pour vérifier à quel point ce serait différent. Mais parce que je suis vraiment nouveau sur Python, je me suis retrouvé coincé sur les connaissances de base sur la façon de supprimer une ligne.Comment obtenir une partie spécifique des informations de la base de données avec Python cgi?

<?php 

require_once 'init.php'; 

if(isset($_GET['item'])){ 

    $id = $_GET['item']; 

    if(!empty($id)){ 
     $deleteQuery = $db->prepare(" 
      DELETE 
      FROM items 
      WHERE id=:id 
     "); 

     $deleteQuery->execute([ 
      'id' => $id 
     ]); 

    } 

}; 

header('Location:webPHP.php'); 

Avec PHP, il est simple de récupérer une partie spécifique d'une ligne, mais comment puis-je le faire et confirmer si elle est pas vide avec Python?

+0

SQL, SQLite, autre chose? –

+0

mysql utilisant wamp server – Vidma

+0

Je n'ai pas mysql fonctionnant sur cet ordinateur, donc je ne peux pas offrir de réponse directe. Si vous deviez chercher SO pour ** python cgi mysql **, vous obtiendriez une collection de résultats, dont certains pourraient être utiles. En effet http://stackoverflow.com/questions/22443209/returning-output-of-python-cgi-mysql-script pourrait vous suffire. Si le résultat de 'cursor.fetchall' est vide (ie,' None') alors vous savez que les lignes que vous avez indiquées dans votre sélection SQL n'existent pas. –

Répondre

0

Je ne me souviens pas de la réponse à cette question. Il est possible que ce soit similaire à ce qui se passe avec sqlite, auquel cas vous pourriez bénéficier de ce qui suit. En substance, certaines librairies Python vont changer une valeur nulle qui vient de SQL vers un None que Python comprend.

import sqlite3 

import os 
os.chdir('c:/scratch') 

conn = sqlite3.connect('temp.sqlite') 
conn.row_factory = sqlite3.Row 
c = conn.cursor() 

c.execute('''SELECT * FROM JustDate WHERE Date_1 = "1970-01-23"''') 

for row in c.fetchall(): 
    for key in row.keys(): 
     if row[key]: 
      print ('Field ', key, 'is not NULL (', row[key], ')') 
     else: 
      print ('Field ', key, 'is NULL') 

Field Date_1 is not NULL (1970-01-23) 
Field Date_2 is NULL 
Field Date_3 is not NULL (2014-08-17) 

Ceci est une table de base de données à deux enregistrements. Je sélectionne l'un des enregistrements et indique comment vous pouvez vérifier si le contenu d'un champ est None ou non. En résumé, si vous écrivez if <name> et <name> évalue à une valeur autre que None, zéro, une chaîne non vide (ou l'une de quelques autres), alors cette expression sera évaluée à True. Sinon, faux.

+0

que signifie clé? – Vidma

+0

'row.keys()' est un dictionnaire. 'key' est simplement une variable formelle qui suppose une série de valeurs de l'ensemble des clés du dictionnaire. Chaque valeur qu'il suppose est une «clé» dans le dictionnaire. J'aurais pu utiliser n'importe quel identifiant au lieu de 'keys'. –

+0

Mais selon votre exemple, vous sélectionnez une partie spécifique des données. J'ai besoin d'accéder aux données que j'envoie depuis une autre page print ("Delete" .format (x [0])) – Vidma