Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Réseau/Web > Django
Django Forum d'entraide sur le framework Web Django
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/02/2013, 22h41   #1
MrGaufre
Invité de passage
 
Inscription : février 2013
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2013
Messages : 6
Points : 0
Points : 0
Par défaut Script connexion serveur

Bonjour, l'on m'a demandé de réaliser un script "météo" qui joindrais un serveur xmpp au choix et renverrait une page de couleur en fonction de la réponse de ce dernier.

J'ai donc une vue qui m'affiche un formulaire avec lequel on choisi le serveur parmi ceux proposés.


SERVERS = (
('1', 'server_x'),
('2', 'server_y'),
('3', 'server_z'),
)

class ContactForm(forms.Form):
username = forms.CharField(max_length=100)
password = forms.CharField(max_length=100)
server = forms.ChoiceField(choices=SERVERS)

def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
server = form.cleaned_data['server']
return HttpResponseRedirect('/connexion_x')
else:
form = ContactForm()
return render_to_response('connexions/accueil.html', { 'form': form, }, context_instance=RequestContext(request))


def connexion_x(request):
c = RequestContext(request)
c.update(csrf(request))
return render_to_response('connexions/connect_x.html', c)


def connexion_y(request):
c = RequestContext(request)
c.update(csrf(request))
return render_to_response('connexions/connect_y.html', c)


def connexion_z(request):
c = RequestContext(request)
c.update(csrf(request))
return render_to_response('connexions/connect_z.html', c)


Actuellement au terme de ce code j'ai une réponse avec une page ayant le template lié à la page connexion_x.

Ce que j'aimerais faire c'est un thread qui lance la connexion au serveur en boucle et renvois les données dans une base de donnée (serveur et état du serveur). Et récupérer les dernières données de la base afin de renvoyer le dernier état du serveur choisi.


Le script de connexion au serveur

cnx = jabber.Cnx(username, password, server)
cnx.register_message(messageHandler)
cnx.connect()
time.sleep(3)
cnx.sendMsg('_JabberTest', 'plop !')
time.sleep(3)
cnx.disconnect()

Je ne sais pas si j'ai été clair mais je suis prêt à donner plus d'explications si nécessaire.
MrGaufre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 18h39   #2
vohufr
Nouveau Membre du Club
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2011
Messages : 50
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : octobre 2011
Messages : 50
Points : 26
Points : 26
salut,

je pense qu'il vaut mieux faire une appli à coté qui tourne en service.. et que tu interroges depuis ton appli django lorsqu'on te demande un affichage
vohufr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2013, 14h42   #3
MrGaufre
Invité de passage
 
Inscription : février 2013
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2013
Messages : 6
Points : 0
Points : 0
Comment fais-tu "une appli qui tourne en service" stp ? merci d'avance
MrGaufre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2013, 18h31   #4
vohufr
Nouveau Membre du Club
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2011
Messages : 50
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : octobre 2011
Messages : 50
Points : 26
Points : 26
ça dépend de l'os du serveur
vohufr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 08h49   #5
MrGaufre
Invité de passage
 
Inscription : février 2013
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2013
Messages : 6
Points : 0
Points : 0
les serveurs ont linux en OS
MrGaufre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 13h42   #6
vohufr
Nouveau Membre du Club
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2011
Messages : 50
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : octobre 2011
Messages : 50
Points : 26
Points : 26
il existe des centaines de distributions linux différentes...
vohufr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 14h12   #7
MrGaufre
Invité de passage
 
Inscription : février 2013
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2013
Messages : 6
Points : 0
Points : 0
aucune idée
MrGaufre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 14h37   #8
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 699
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 699
Points : 4 530
Points : 4 530
Citation:
Envoyé par MrGaufre Voir le message
Comment fais-tu "une appli qui tourne en service" stp ? merci d'avance
Vous voulez peut être parler d'un "service" à la Windows.
Sur linux, çà s'appelle un daemon: c'est un process qui tourne sans terminal et qui se lance de façon particulière. Le plus simple étant d'utiliser la biblio daemonize.

Lorsque vous écrivez:
Citation:
Ce que j'aimerais faire c'est un thread qui lance la connexion au serveur en boucle et renvois les données dans une base de donnée (serveur et état du serveur). Et récupérer les dernières données de la base afin de renvoyer le dernier état du serveur choisi.
Il faut relire "thread" comme activité asynchrone réalisée par un daemon/service.

Ceci dit je n'ai toujours pas compris pourquoi cela devait être aussi compliqué.
- W
__________________
Architectures Post-Modernes
wiztricks est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 15h35   #9
MrGaufre
Invité de passage
 
Inscription : février 2013
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2013
Messages : 6
Points : 0
Points : 0
grosso modo il faut que la personne choisisse son serveur, et qu'en réponse il y ai une page de couleur renvoyée en fonction de l'état de la connexion au serveur, et je dois utiliser une base de donnée.

c'est aussi compliqué parce que je suis novice et que j'ai tendance à toujours partir sur des trucs plus compliqué que nécessaire
MrGaufre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 16h04   #10
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 699
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 699
Points : 4 530
Points : 4 530
Citation:
Envoyé par MrGaufre Voir le message
grosso modo il faut que la personne choisisse son serveur, et qu'en réponse il y ai une page de couleur renvoyée en fonction de l'état de la connexion au serveur, et je dois utiliser une base de donnée.
Pourquoi interroger/alimenter la BDD plutôt que le serveur?
Si c'est une question de performance, le site Web dispose en général d'un cache "clé/valeur" qui pourrait être mis à profit pour éviter de faire une requête vers le serveur à chaque fois.

Je ne vois pas trop l'intérêt de "charger" le serveur de BDD pour y récupérer des données aussi volatiles que le temps qu'il fait. Si les rafraîchissement sont tirés par les requêtes utilisateurs, plus besoin d'un daemon pour "pousser", plus besoin de tables pour les stocker, plus besoin de s'inquiéter du dimensionnement du serveur, des disques,...

Citation:
c'est aussi compliqué parce que je suis novice et que j'ai tendance à toujours partir sur des trucs plus compliqué que nécessaire
Plus simple, moins cher,...
- W
__________________
Architectures Post-Modernes
wiztricks est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 16h25   #11
MrGaufre
Invité de passage
 
Inscription : février 2013
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2013
Messages : 6
Points : 0
Points : 0
Citation:
Je ne vois pas trop l'intérêt de "charger" le serveur de BDD pour y récupérer des données aussi volatiles que le temps qu'il fait. Si les rafraîchissement sont tirés par les requêtes utilisateurs, plus besoin d'un daemon pour "pousser", plus besoin de tables pour les stocker, plus besoin de s'inquiéter du dimensionnement du serveur, des disques,...
okay et tu ferais ça comment en faite en utilisant le script de connexion ?
MrGaufre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 17h48   #12
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 699
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 699
Points : 4 530
Points : 4 530
Citation:
Envoyé par MrGaufre Voir le message
okay et tu ferais ça comment en faite en utilisant le script de connexion ?
En fait, vous parlez de "météo" alors que l'exemple peut difficilement faire mieux que remonter l'état d'un des 3 serveurs (up ou down). Vous utilisez XMPP (un protocole de messagerie instantanée) pour faire l'équivalent d'un ping.

Vous avez certainement de bonnes raisons mais il m'est impossible de savoir ce que vous voulez faire et si les choix faits sont raisonnables.
A partir de là, difficile de réfléchir à comment faire alors qu'il est quasi certain que j'aurais tout faux.

- W
__________________
Architectures Post-Modernes
wiztricks est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h13.


 
 
 
 
Partenaires

Hébergement Web