tal-Große Datenmengen aufteilen

Django, Flask, Bottle, WSGI, CGI…
Benutzeravatar
draci
User
Beiträge: 53
Registriert: Dienstag 26. September 2006, 18:13

tal-Große Datenmengen aufteilen

Beitragvon draci » Freitag 4. Juli 2008, 15:41

Hallo Forum!

Ich habe folgendes Problem:
Ich möchte aus einem B2Tree-Ordner alle Objekte mit tal:repeat auflisten.
Mit Python ist die Verarbeitung kein Problem, aber natürlich genauso wie in TAL die Ausgabe.

Gibt es eine Möglichkeit möglichst einfach die Menge der Objekte, die ausgegeben werden zu begrenzen und automatisch weiter,zurück bzw. Sprunglinks (z.B. gehe zu 200-300)
(Wie hier im Forum mit den Seiten) zu generieren ?

draci
Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. - Linus Torvalds

http://groups.google.com/group/pt.comp.so.linux/msg/9eb7db59e32fe08a

Wie man richtig Fragen stellt
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: tal-Große Datenmengen aufteilen

Beitragvon gerold » Freitag 4. Juli 2008, 17:29

Hallo draci!

Dafür ist ``ZTUtils.Batch`` zuständig.

Das ist eine Seite, die mit dem "Z Search Interface" erstellt wurde. Die wichtigen Dinge musst du dir selber raus holen. Da habe ich jetzt keine Geduld dafür.

Code: Alles auswählen

<html>
  <body tal:define="results  here/addresses_search_sql;
                    start request/start|python:0;
                    batch python:modules['ZTUtils'].Batch(results,
                                                          size=20,
                                                          start=start);
                    previous python:batch.previous;
                    next python:batch.next">

  <p>
    <a tal:condition="previous"
       tal:attributes="href string:${request/URL0}?start:int=${previous/first}"
       href="previous_url">previous <span tal:replace="previous/length">20</span> results</a>
    <a tal:condition="next"
       tal:attributes="href string:${request/URL0}?start:int=${next/first}"
       href="next_url">next <span tal:replace="next/length">20</span> results</a>
  </p>

  <table border>
        <tr>
          <th>VORNAME</th>
          <th>NACHNAME</th>
        </tr>
       
  <tal:x repeat="result batch" >
 
         <tr>
          <td><span tal:replace="result/VORNAME">VORNAME goes here</span></td>
          <td><span tal:replace="result/NACHNAME">NACHNAME goes here</span></td>
        </tr>

  </tal:x>

      </table>
  <p>
    <a tal:condition="previous"
       tal:attributes="href string:${request/URL0}?start:int=${previous/first}"
       href="previous_url">previous <span tal:replace="previous/length">20</span> results</a>
    <a tal:condition="next"
       tal:attributes="href string:${request/URL0}?start:int=${next/first}"
       href="next_url">next <span tal:replace="next/length">20</span> results</a>
  </p>

  </body>
</html>

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
draci
User
Beiträge: 53
Registriert: Dienstag 26. September 2006, 18:13

Beitragvon draci » Freitag 4. Juli 2008, 18:29

Cool werd's mir mal ansehen
Danke :D

PS: Schön kurz :mrgreen:
Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. - Linus Torvalds



http://groups.google.com/group/pt.comp.so.linux/msg/9eb7db59e32fe08a



Wie man richtig Fragen stellt
Benutzeravatar
draci
User
Beiträge: 53
Registriert: Dienstag 26. September 2006, 18:13

Beitragvon draci » Montag 7. Juli 2008, 19:58

Hier noch mal Aufgeschlüsselt :D

Code: Alles auswählen

<html>
  <body tal:define="results  ABFRAGE (z.B. here/objectValues);
                    start request/start|python:0;
                    batch python:modules['ZTUtils'].Batch(results,
                                                          size="Menge der Elemente pro Seite",
                                                          start=start);
                    previous python:batch.previous;
                    next python:batch.next">

  <p>
    <a tal:condition="previous"
       tal:attributes="href string:${request/URL0}?start:int=${previous/first}"
       href="previous_url">"Text vor der Zahl"<span tal:replace="previous/length">"Menge der Elemente pro Seite"</span>"Test nach der Zahl"</a>
    <a tal:condition="next"
       tal:attributes="href string:${request/URL0}?start:int=${next/first}"
       href="next_url">"Text vor der Zahl"<span tal:replace="next/length">"Menge der Elemente pro Seite"</span>"Test nach der Zahl"</a>
  </p>

  <table border>
        <tr>
          <th>VORNAME</th>
          <th>NACHNAME</th>
        </tr>
       
  <tal:x repeat="result batch" >
 
         <tr>
          <td><span tal:replace="result/VORNAME">VORNAME goes here</span></td>
          <td><span tal:replace="result/NACHNAME">NACHNAME goes here</span></td>
        </tr>

  </tal:x>

      </table>
  <p>
    <a tal:condition="previous"
       tal:attributes="href string:${request/URL0}?start:int=${previous/first}"
       href="previous_url">"Text vor der Zahl"<span tal:replace="previous/length">"Menge der Elemente pro Seite"</span>"Test nach der Zahl"</a>
    <a tal:condition="next"
       tal:attributes="href string:${request/URL0}?start:int=${next/first}"
       href="next_url">"Text vor der Zahl"<span tal:replace="next/length">"Menge der Elemente pro Seite"</span>"Test nach der Zahl"</a>
  </p>

  </body>
</html>
Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. - Linus Torvalds



http://groups.google.com/group/pt.comp.so.linux/msg/9eb7db59e32fe08a



Wie man richtig Fragen stellt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder