Python script gibt keine ausgabe ins formular

Django, Flask, Bottle, WSGI, CGI…
Antworten
mexi
User
Beiträge: 10
Registriert: Montag 16. Oktober 2006, 13:39

Guten morgen:)

Habe zwei formulare; eins für die eingabe der daten und das zweite soll die suchergebnisse anzeigen. Das erste formular ruft ein script auf, das dann das formular für die ausgaben anzeigt.
Wenn ich das script teste, bekomme ich ergebnisse, nur leider kann ich die nicht im formular ausgeben :cry:

Code: Alles auswählen

# Import a standard function, and get the HTML request and response objects.
from Products.PythonScripts.standard import html_quote
request = container.REQUEST
RESPONSE =  request.RESPONSE

res=container['sqlSelect']
page=container['resultOnly_pt']

if res(gruppe = gruppe, messmittel=messmittel, ident_nr=ident_nr, kalibrierschein=kalibrierschein, fabrikat_nr = fabrikat_nr):
    return page([{'gruppe':x.gruppe, 'messmittel':x.messmittel, 'typ':x.typ, 'hersteller':x.hersteller,
'fabrikat_nr':x.fabrikat_nr, 'ident_nr':x.ident_nr, 'kalibrierschein':x.kalibrierschein, 'messbereich':x.messbereich,
'standort':x.standort, 'standort':x.standort, 'kalibrierung':x.kalibrierung, 'kalibrierdatum':x.kalibrierdatum,
'brauchbar':x.brauchbar, 'naechste_kalibrierung':x.naechste_kalibrierung, 'bemerkung':x.bemerkung,
'bemerkung_zur_entnahme':x.bemerkung_zur_entnahme, 'kms':x.kms, 'entnahme':x.entnahme} for x in res])
else:
    return[{'messmittel':"keine Daten gefunden"}]



die daten frage ich im formular so ab:
<div tal:repeat="result here/searchScript" >
  
         <tr>
          <td><div tal:content="result/messmittel">Messmittel goes here</div></td>
          <td><div tal:content="result/typ">Typ goes here</div></td>
          <td><div tal:content="result/ident_nr">Ident_nr goes here</div></td>
          <td><div tal:content="result/messbereich">Messbereich goes here</div></td>
          <td><div tal:content="result/kalibrierschein">Kalibrierschein goes div</div></td>
          <td><div tal:content="result/standort">Standort goes here</div></td>
          <td><div tal:content="result/naechste_kalibrierung">Naechste_kalibrierung goes here</div></td>
          <td><div tal:content="result/entnahme">Entnahme goes here</div></td>
          <td><div tal:content="result/kms">KMS goes here</div></td>
        </tr>


Sitze bestimmt gewaltig aufm schlauch und seh den wald vor lauter bäumen nicht :oops: 
Bin für jeden tipp dankbar
Mexi
mexi
User
Beiträge: 10
Registriert: Montag 16. Oktober 2006, 13:39

oops und hab das code ende vergessen. Entschuldigung, dass es jetzt so unübersichtlich ist
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mexi hat geschrieben:oops und hab das code ende vergessen. Entschuldigung, dass es jetzt so unübersichtlich ist
Hi mexi!

Du kannst deinen Beitrag noch einmal editieren. Suche den Button [edit].

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mexi hat geschrieben:

Code: Alles auswählen

if res(gruppe = gruppe, messmittel=messmittel, ident_nr=ident_nr, kalibrierschein=kalibrierschein, fabrikat_nr = fabrikat_nr):
Hallo mexi!

Das löst jetzt nicht dein Problem. Es ist nur mal ein Versuch, den Code etwas kompakter zu machen: Probier mal stattdessen

Code: Alles auswählen

if res(request):
aus. Vielleicht funktioniert es. Sicher bin ich mir nicht, da ich es im Moment nicht testen kann.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mexi hat geschrieben:

Code: Alles auswählen

if res(gruppe = gruppe, messmittel=messmittel, ident_nr=ident_nr, kalibrierschein=kalibrierschein, fabrikat_nr = fabrikat_nr):
    return page([{'gruppe':x.gruppe, 'messmittel':x.messmittel, 'typ':x.typ, 'hersteller':x.hersteller,
'fabrikat_nr':x.fabrikat_nr, 'ident_nr':x.ident_nr, 'kalibrierschein':x.kalibrierschein, 'messbereich':x.messbereich,
'standort':x.standort, 'standort':x.standort, 'kalibrierung':x.kalibrierung, 'kalibrierdatum':x.kalibrierdatum,
'brauchbar':x.brauchbar, 'naechste_kalibrierung':x.naechste_kalibrierung, 'bemerkung':x.bemerkung,
'bemerkung_zur_entnahme':x.bemerkung_zur_entnahme, 'kms':x.kms, 'entnahme':x.entnahme} for x in res])
else:
    return[{'messmittel':"keine Daten gefunden"}]
Hi mexi!

Code: Alles auswählen

result = res(request)
if result:
    return page(result)
else:
    return page(result = [])
In ``resultOnly_pt`` könntes du dann so damit arbeiten:

Code: Alles auswählen

<table tal:condition="options/result">
  <tr ral:repeat="row options/result">
    <td tal:content="row/messmittel">
      [messmittel]
    </td>
  </tr>
</table>
Der Weg der Daten muss aber so laufen:
1.) Formular, das die benötigten Daten abfragt.
2.) Python-Script, das die Daten entgegen nimmt, die SQL-Abfrage ausführt und die Ergebnisseite aufruft.
3.) Ergebnisseite, die die Variablen über ``options`` abfragt und anzeigt.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
mexi
User
Beiträge: 10
Registriert: Montag 16. Oktober 2006, 13:39

leider bekomme ich jetzt ständig diese fehlermeldung:Error Type: KeyError
Error Value: 'result' :roll:

danke für den edit-tipp :oops: werde ich in zukunft beherzigen :D
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo mexi!

Ich habe da mal ein kleines Beispiel zusammengestellt:
http://gerold.bcom.at/zope_plone/zope_c ... _beispiel/

Darin wird demonstriert, wie man einen Wert von einem Formular an eine SQL-Abfrage weitergibt und das Ergebnis in einer Seitenvorlage anzeigt.

mfg
Gerold
:-)

Stichworte: SQL, Datenbank, Datenbankabfrage, weitergeben
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten