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>
