On 4/14/06, Cyrille Leroux <[EMAIL PROTECTED]> wrote:
> On 4/14/06, Stefane Fermigier <[EMAIL PROTECTED]> wrote:
> > Cyrille Leroux wrote:
> > > On 4/13/06, Stefane Fermigier <[EMAIL PROTECTED]> wrote:
> > >
> > >> Cyrille Leroux wrote:
> > >>
> > >>>>> Ce que j'aimerais savoir, c'est s'il existe une "manière CPS" de
> > >>>>> traiter les ZSQL Methods.
> > >>>>>
> > >>>>>
> > >>>> Ne pas utiliser les ZSQL Methods. C'est une maniere "old school" de 
> > >>>> faire une
> > >>>> connexion à une DB depuis du DTML.
> > >>>>
> > >>>>
> > >>>>
> > >>>>> J'aimerais faire un widget : j'ai regardé BasicWidgets.py et
> > >>>>> ExtendedWidgets.py dans CPSSchemas, je pense avoir compris comment
> > >>>>> ajouter un widget ... mais est-il possible de traiter des ZSQL là
> > >>>>> dedans? Par exemple prendre le résultat d'une requête et l'afficher
> > >>>>> sous forme de liste en héritant de CPSListWidget? Ou est ce que je
> > >>>>> suis sur une mauvaise piste?
> > >>>>>
> > >>>>>
> > >>>> Faire un widget est une bonne approche. Une portlet peut aussi etre 
> > >>>> une bonne
> > >>>> solution. Il faut coder la logique de requetage dans la methode 
> > >>>> prepare ou meme
> > >>>> directement render en utilisant un connecteur python <-> db tel 
> > >>>> psycopg pour
> > >>>> postgresql.
> > >>>>
> > >>>> Il existe aussi des mapper objets/relations tel SQLAlchemy ou 
> > >>>> SQLObject qui
> > >>>> fournissent une interface plus haut niveau à une DB.
> > >>>>
> > >>>> Le parametres de connexions a la DB peuvent etre stockés de maniere 
> > >>>> persistente
> > >>>> sous forme de propriétés de l'objet portail ou d'un tool dédié.
> > >>>>
> > >>>> --
> > >>>> Olivier
> > >>>>
> > >>>> _______________________________________________
> > >>>> cps-users-fr
> > >>>> Adresse de la liste : [email protected]
> > >>>> Gestion de l'abonnement : 
> > >>>> <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
> > >>>>
> > >>>>
> > >>> Bonsoir, et encore merci à Olivier pour son aide.
> > >>>
> > >>> Et j'ai -encore- une question...
> > >>>
> > >>> Plutôt que d'utiliser une BDD externe via un "Database Adapter" comme
> > >>> psycopg, j'aimerais me servir de Gadfly qui est intégré dans Zope.
> > >>>
> > >>> En cherchant un peu
> > >>> (http://gadfly.sourceforge.net/gadfly.html#creating-a-new-database)
> > >>> j'ai trouvé ce type d'exemple :
> > >>> import gadfly
> > >>> connection = gadfly.gadfly()
> > >>> (...)
> > >>>
> > >>> Un peu sceptique, j'ai mis un import gadfly dans le code de mon
> > >>> widget, mais Python ne trouve pas gadfly.
> > >>>
> > >>> Donc ma question : est-il possible (et si oui, comment?) d'utiliser le
> > >>> gadfly intégré à Zope, ou faut-il passer obligatoirement par une BDD
> > >>> externe?
> > >>>
> > >>>
> > >> Pour utiliser Gadfly depuis Zope, il suffit d'instancier dans la ZMI une
> > >> "Z Gadfly Database Connection".
> > >>
> > >> Pour l'utiliser en-dehors de Zope, directement depuis Python:
> > >> http://gadfly.sourceforge.net/ ou "apt-get install python-gadfly" sous
> > >> Debian et Ubuntu.
> > >>
> > >>   S.
> > >>
> > >> --
> > >> Stéfane Fermigier, Tel: +33 (0)6 63 04 12 77 (mobile).
> > >> Nuxeo Collaborative Portal Server: http://www.nuxeo.com/cps
> > >> Gestion de contenu web / portail collaboratif / groupware / open source!
> > >>
> > >>
> > >>
> > >
> > > Merci de m'avoir répondu.
> > >
> > > Pour m'assurer d'avoir bien compris : pour utiliser Gadfly à partir
> > > d'un widget CPS (du code Python donc), il  faut installer le
> > > python-gadfly (ou quelque chose d'équivalent à compiler), mais du coup
> > > la version intégrée à Zope n'est pas utilisée?
> > >
> >
> > Non, python-gadfly c'est uniquemen si tu veux Gadfly en-dehors de Zope
> > (comme dans l'exemple de code que tu as écrit). En fait, avec le bon
> > PYTHONPATH, et si tu as installé Zope, tu n'en as même pas besoin.
>
> Je ne suis pas sûr de bien comprendre, dans mon bin/runzope, j'ai ça :
> (...)
> SOFTWARE_HOME="/usr/sitesCPS/siteDeTest/lib/python"
> PYTHONPATH="$SOFTWARE_HOME"
> (...)
>
> Donc, mon PYTHONPATH pointe vers le lib/python du serveur Zope,
> d'ailleurs, sous Zope, j'arrive bien à utiliser les ZSQL Methods avec
> du DTML.
>
> Par contre, à partir d'un script Python sous CPS, je n'ai aucune idée
> de la manière d'utiliser Gadfly... ou alors, est ce qu'il est possible
> d'utiliser une ZSQL Method à partir d'un script Python? (ça
> m'étonnerais étant donné ce qu'à écrit Olivier Grisel plus haut : "Ne
> pas utiliser les ZSQL Methods. C'est une manière "old school" de faire
> une connexion à une DB depuis du DTML.".
>
>     Enfin voilà, je cherche juste à utiliser la SBDD intégrée à Zope
> pour écrire un widget CPS (sur une toute petite base), donc si ce
> n'est pas possible, autant installer une autre SGBDD.
>
>     Cyrille

Je me répond à moi même,
Pour accéder à Gadfly à partir d'un script Python (dans CPS,
évidement), il faut utiliser :

from Products.ZGadflyDA import gadfly

Ça m'étonne quand même de n'avoir trouvé aucune trace de ça malgré mes
recherches, ça me parait un cas relativement "de base", à moins que ce
soit un secret jalousement gardé :)

Merci à ceux qui m'ont aidé.
_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

Répondre à