2010-08-17 5 views
0

Désolé pour la question totalement stupide, mais la situation est que je dois apporter quelques modifications au site Django, et j'ai environ zéro connaissances en python. J'ai lu des documents Django et j'ai découvert où faire des changements, mais il y a une situation très étrange. Quand je change de vue, de template, de config ou de quoi que ce soit sur le site web - rien ne se passe.Je change de code Python, mais ne peux pas voir les résultats

Il semble que le code soit mis en cache. Quand je supprime complètement le dossier du site - tout fonctionne bien, sauf css cesse de fonctionner.

Le seul fichier qui est essentiel et pose en dehors du dossier du site est starter.py code cinque

#!/usr/local/bin/pthon2.3 

    import sys, os 

    .... importing some pathes and other conf stuff 

    import django.core.handlers.wsgi 
    application = django.core.handlers.wsgi.WSGIHandler() 

S'il vous plaît quelqu'un peut-il dire à ma ce que je fais mal?

+0

Exécutez Django avec Apache? Si c'est le cas, vous devrez redémarrer Apache pour que la plupart des modifications soient visibles (les modifications apportées aux modèles doivent apparaître immédiatement, à moins que vous ne fassiez quelque chose de fou avec la mise en cache des modèles). –

+0

Oui, c'est appache. En fait, c'est un hébergement à distance. Il est presque impossible de redémarrer Appache. Et caches - oui il y a des caches. from genum.django.cache Importer le cache, huge_cache, requestcachedmethod Mais après les avoir supprimés, ils apparaissent à nouveau sans aucun changement. Existe-t-il un autre moyen de redémarrer le code sans redémarrer Appache? –

+0

Si vous utilisez apache et mod_wsgi, vous pouvez recharger l'application wsgi en mettant à jour la date de modification du point de montage wsgi. (juste en faisant 'touch/path/to/mount/point.py' devrait faire l'affaire) – carl

Répondre

3

Les applications Web Python diffèrent généralement des applications PHP car le logiciel n'est pas automatiquement rechargé une fois que vous avez modifié le code source. Cela est logique car l'initialisation, l'allumage de l'interpréteur, etc., n'ont pas besoin d'être effectués à chaque instance. Ce n'est pas que le code est "mis en cache"; c'est seulement chargé une fois. (Python met en cache son bytecode, mais il détecte les modifications de manière transparente, vous n'avez donc pas à vous en préoccuper.) Vous devez donc trouver un moyen de redémarrer le programme WSGI. Comment cela se fait dans votre environnement d'hébergement Web particulier est pour vous de savoir, avec l'aide de l'hébergeur ou de l'administrateur système. En plus de cela, Django met en cache ses vues (si cette fonctionnalité est activée). Vous devrez invalider les caches dans ce cas.

+0

Merci, loevborg –

Questions connexes