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.
Partager