2010-07-22 7 views
4

J'ai développé un site Web django sur mon ordinateur local et il est maintenant temps de le télécharger sur un serveur. Je voudrais que pendant le temps que je travaille dessus, seuls les utilisateurs connectés peuvent le voir. Je pensais à unMasquage d'un site Web django pendant le développement

{% if is_logged_in %} 
{% else %} 
{% endif %} 
Structure

dans mon modèle de base.py mais pas toutes mes vues retourner un contexte donc il ne fonctionne pas toujours.

Y at-il un moyen simple sans avoir à changer beaucoup de code pour cacher toutes les pages?

+0

Question intéressante. J'ai aussi ce problème, quand je développe un site pour une entreprise, il obtient habituellement un rang plus élevé sur Google que le site officiel des entreprises (la plupart du temps, écrit en Flash ...). –

Répondre

4

Il existe deux solutions raisonnables pour cela.

  1. L'utilisation d'un middleware pour demander l'authentification (si besoin je peux mettre un exemple en ligne, mais le code devrait être trivial)
  2. Utilisation de l'authentification dans vos serveurs Web. De cette façon, vous pouvez simplement ajouter quelques adresses IP et/ou utilisateurs pour avoir accès. Ces jours-ci, il est assez facile de lier votre authentification http à Django, donc avec mod_wsgi et mod_python vous pouvez laisser Apache authentifier ses utilisateurs via Django.
4

Utilisez django.contrib.auth.decorators.login_required. C'est un décorateur, qui empêchera les utilisateurs de voir n'importe quoi, s'ils ne sont pas connectés. Ou vous pouvez trouver le middleware pour ceci: http://djangosnippets.org/snippets/1179/.

Le middleware sera meilleur, car il est discret et vous pouvez l'enlever plus tard.

0

Une autre façon raisonnable de procéder serait de créer des certificats clients. De cette façon, vous pouvez également tester les parties qui ne nécessitent pas d'être connecté

0

ou de protéger l'ensemble du répertoire sur le serveur avec .htaccess et cela empêche également Google de trouver le site en développement.

Questions connexes