2009-12-30 3 views
4

J'utilise Web2Py et je veux importer mon programme simplement une fois par session ... pas à chaque fois que la page est chargée. Est-ce possible ? "import Client" est utilisé sur la page mais ne l'importe qu'une fois par session.Web2py Importer une fois par session

Répondre

6

En web2py, vos modèles et contrôleurs sont exécutés, non importés. Ils sont exécutés chaque fois qu'une demande arrive. Si vous appuyez sur le bouton [compiler] dans admin, ils seront compilés bytecode et d'autres optimisations sont effectuées. Si votre application (dans les modèles et les contrôleurs) fait "import somemodule", alors l'instruction import est exécutée à chaque requête mais "somemodule" n'est réellement importé que la première fois qu'il est exécuté, comme vous l'avez demandé.

+0

okay. Donc, vous pouvez dire que je n'ai pas besoin de changer quoi que ce soit .. Je peux le laisser comme il est "import somemodule" sur mon application web2py et il fera comme je l'ai demandé, importer/exécuter une fois par session/demande. .... ce module que j'utilise est très important pour l'ensemble de l'application, donc je veux seulement l'importer une fois et ensuite le passer en arg/variable à d'autres fonctions au besoin ... – user233864

+0

Ok ... Que faire si je ne ne veux pas qu'il soit exécuté chaque fois qu'une demande est faite .. Qu'en est-il seulement une fois par session (une fois par connexion à partir d'une adresse IP) ?? Est-ce possible ? – user233864

+1

Oui et non. Les fichiers que vous mettez dans le dossier models sont exécutés à chaque requête. Période. Bien sûr, ces fichiers peuvent contenir des instructions conditionnelles. Vous pouvez déplacer n'importe quel code que vous aimez (inclure les définitions de table) des modèles/dans des modules/et les importer conditionnellement comme vous le souhaitez. Fondamentalement, si vous pouvez le faire en Python, vous pouvez le faire en web2py. La seule différence est dans quel dossier vous mettez le code (modèles ou modules). Permettez-moi d'ajouter qu'il n'y a pas de surcharge significative dans l'exécution de tous les modèles à chaque demande. En outre, web2py met en cache les modèles compilés par bytecode dans RAM pour plus de rapidité. – mdipierro