Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Petit script python sur serveur mutualisé OVH

+2 votes

Petite question.

J'ai un programme local qui, avant de réaliser certaines actions, contacte un serveur pour vérifier quelques trucs.

Le serveur en question est un serveur mutualisé chez OVH, offre perso. Il dispose d'une base de données MySQL.

Le programme, dans un premier temps, envoie un id unique au serveur. Le serveur réceptionne l'id, et regarde en base de donnée les infos correspondant à cet id unique. Disons qu'il récupère un entier. Le serveur renvoie ensuite cet entier au programme, qui fera des trucs et des machins avec.

J'avoue que je sais pas trop comment procéder. Je connais pas trop mal PHP, les requêtes post et get, etc, mais là je ne vois pas comment faire. Je voudrais utiliser Python à la place de PHP.

Comment est-ce que ça doit se passer ? J'envoie une requête get au serveur, qui me sert une page avec l'entier ? Je télécharge ensuite cette page pour récupérer l'entier ?

Est-ce que vous me conseiller d'utiliser un framework pour une tâche aussi basique ? Normalement, le code devrait tenir dans un seul script sur le serveur, je ne fais que des opérations très basiques.

Voilà voilà, quelques petites questions pour savoir commencer, le code viendra après.

demandé 17-Mai-2015 par Rififi (508 points)
reclassée 22-Mai-2015 par foxmask

2 Réponses

0 votes

Comment est-ce que ça doit se passer ? J'envoie une requête get au serveur, qui me sert une page avec l'entier ? Je télécharge ensuite cette page pour récupérer l'entier ?

Non, Tu envoies une requete GET a ton serveur. Sur ce dernier, tu dois avoir deployé une petite API qui se chargera de recuperer ton id, executer la requete sql et renvoyer le resultat sous forme de xml ou de json.

Est-ce que vous me conseiller d'utiliser un framework pour une tâche aussi basique ? Normalement, le code devrait tenir dans un seul script sur le serveur, je ne fais que des opérations très basiques.

Les approches sont diverses et variées, honnetement, ce sera a toi de choisir laquelle te convient le mieux.

Tu peux te servir de Flask et et ecrire toi meme une API qui renverra des infos en allant piocher dans ta base de données.

Tu peux te servir de Sandman outil te permettant de creer une API a partir de ta base de données.

Tu peux egalement te servir de Ansible, outil te permettant de recuperer des informations sur ton serveur (et bien plus encore) sans rien installer sur ce dernier. Exemple

Difficile de t'aider d'avantage si tu ne soumets pas quelle est ton approche.

répondu 17-Mai-2015 par Nsukami_ (1,998 points)

Ok. J'ai ajouté une réponse, parce que j'ai un peu avancé de mon côté. C'est à peu près ça que je veux faire. Est-ce que je pourrais avoir ton avis sur le code ?

+1 vote

Ok en fait en cherchant un peu de mon côté, j'ai trouvé ça:

un premier lien

et aussi ça, mais pour un cas plus général, pas spécialement OVH:

Un 2e lien

#!/usr/bin/python
# coding: utf-8

import __future__
import cgi
import MySQLdb
import MySQLdb.cursors


def htmlTop():
    print("Content-type: text/html\n\n")


def getData():

    formData = cgi.FieldStorage()
    user_id = formData.getvalue('user_id')

    if user_id is None:
        # TODO: créer user id si aucun user_id
        pass
    else:
        getAccess(user_id)


def getAccess(user_id):

    db = MySQLdb.connect(host='prout', user='caca',
                         passwd='cacanoel', db='bonjour',
                         cursorclass=MySQLdb.cursors.DictCursor)

    cursor = db.cursor()

    cursor.execute("SELECT * FROM python_users WHERE user_id=?", (user_id,))


    cursor.close()
    db.close()



if __name__ == "__main__":
    try:
        htmlTop()
        getData()
    except:
        cgi.print_exception()

Et après côté client il faut juste envoyer une requête GET avec requests par exemple.

Donc bon, ça fait le job. C'est juste un petit script qui tourne sur mon serveur pour vérifier quelques infos.
Par contre j'aimerais des critiques sur ce code: bien, pas bien ? Safe ? J'aime pas trop laisser des infos comme le password en clair. En gros, est-ce qu'il y a mieux, et est-ce que je peux améliorer ça ?

répondu 18-Mai-2015 par Rififi (508 points)

"En gros, est-ce qu'il y a mieux, et est-ce que je peux améliorer ça ?" Oui, il y a mieux, oui tu peux ameliorer ça. Maintenant, tu dis que c'est juste un petit script qui tourne sur ton serveur pour vérifier quelques infos, donc oui, ça fait le taf.

Les mutu ovh et Django/python, c'est loin d'être la panacée. Pour ça que je suis passé sur du vps a très bas prix.

...