Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Python et Brython


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Python et Brython
    Bonjour/bonsoir , je suis en terminale S isn, et je voulais comme projet en ISN , faire un site Html css avec du code python, j'ai donc trouvé brython et novice dans la chose , quelqu'un pourrait-il m'aider à utiliser brython pour mettre mon quizz dans ma page html sachant que j'ai le code python
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    print(" Taper la bonne réponse A,B,C ou si plusieurs réponses les réponses séparées d'un point ;(A;C par exemple)( ne pas oublier les majuscules , c'est une série de 10 questions . Si vous répondez autre chose que A B C le programme plantera il faudra le relancer . " )
     
     
    Question = [["Quelle est le quantum d'un CAN 8 bits avec une pleine échelle 5 volts ?","A :1/51","B :8/5","C :40","B"],
                ["Quelle est l'accélération d'une voiture roulant à 100 km/h en t=1h en départ arrêté ? ","A :100km/h^2","B :6m/s^3","C :6m/s^2","C"],
                ["Comment commande t'on un moteur ?","A :Par Mli","B :Avec du courant","C :Par PWM avec du courant ","C"],
                ["Peut-on augmenter la vitesse d'un moteur ?","A :Impossible on a déja trop de couple","B :Avec un réducteur","C:Avec un multiplicateur","C :Lisbonne"],
                ["Comment peut-on être écolo demain? ","A :en jetant nos poubelles","B :En construisant de manière écolo","C :En enfouissant nos déchets","B"],
                ["Comment calcule-t-on l'intensité d'un courant à la sortie d'un composant dans un circuit?","A :Par loi des mailles","B :Par loi d'ohm","C :Par loi des noeuds","B;C"],
                ["Dans une batterie de 6 mAh et de tension 15v, Calculer l'energie disponible en joules","A :324 J","B :0.09 Wh","C : 90 J","B :C"],
                [" Un bon moteur ","A :ça dépend?","B : un moteur avec un fort couple? ","C : un moteur qui tourne vite?","C :A;B;C;?"],
                ["Traduisez en décimal 01011111(b2)? ","A :95(B10)","B :55(B10)²","C :6(B10)","A"]]
     
     
    qtal = Question #On enleve des éléments de la liste pour ne pas répéter la question.
     
     
    x = 0
    while x < 9 :
        for i in range(0,1):
         lQst = random.choice(qtal)  #On prend une question
         qtal.remove(lQst)  #Qu'on enleve de notre liste de questions
         print(lQst[0])  #On l'affiche
     
     
         print(lQst[1]) #Les 3 réponses
         print(lQst[2])
         print(lQst[3])
     
     
         LRep = str(input("Votre réponse: ")) #On redemande
     
         LChx = LRep
     
     
     
         if LChx == lQst[4]: #rpvrai
          print("-- VRAI --\n")
          print("Nouvelle question : " )
          x += 1
     
         else: #Sinon
          print("-- FAUX --\n")
          print(" La bonne réponse était : "), print(lQst[4])
     
          print("Nouvelle question : " )
          x += 1
     
    x = 10
    print(" Fin du jeu ! " )

    il nécessite peut être des modifications par rapport à brython.

  2. #2
    Futur Membre du Club
    Bonjour,
    Tu a tous ce qu'il faut pour y arriver ici.

  3. #3
    Expert éminent
    Bonjour,

    Il y a plusieurs années que je n'avais pas touché à Brython, et je vois avec plaisir que ça progresse bien!

    Il y a effectivement pas mal de changements à faire dans ton code, parce qu'il est conçu pour fonctionner en console, alors que le codage pour le web s'apparente plutôt à une programmation graphique, c'est à dire par évènement (déclenché par la souris, le clavier, etc...).

    Par ailleurs, ce codage nécessite, en plus de Python, des connaissances en html, css, javascript et accès DOM.

    Par curiosité, j'ai fait un petit code de principe pour ton problème, qui devrait te permettre de démarrer. Mais il y aura pas mal d'améliorations à faire! Regarde les démos du site de brython: c'est impressionnant ce qu'on peut faire avec: https://brython.info/demo.html?lang=en

    Avant d'essayer ce code, je rappelle comment on peut le faire fonctionner sur un PC Windows:

    - télécharger brython ici: https://github.com/brython-dev/brython/releases. Tu choisis "Brython-3.7.1.zip", et tu le désarchives.

    - tu crées quelque part sur ton disque un répertoire "weblocal" (par exemple).

    - tu crées dans ce répertoire un sous-répertoire "src" dans lequel tu places les fichiers désarchivés de brython.

    - et tu mettras ton code html dans le répertoire "weblocal".

    - maintenant, il faut activer un serveur web à cet endroit. Tu prends une console, tu te places dans le répertoire "weblocal" (avec cd ...), et tu lances le serveur web python avec:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    python -m http.server 8000


    Et il devrait s'afficher:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/)


    Maintenant, ton serveur web est activé, et il suffit de mettre un fichier html, par exemple "questionnement.html", et de l'appeler dans un navigateur (firefox chez moi) avec:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    http://localhost:8000/questionnement.html


    Pour la mise au point du programme, je te suggère de lancer brython avec le niveau de debug:1 et d'afficher la console web du navigateur (sous firefox: menu Outils=>Développement web=>Console web). Ainsi, tu verras toutes tes erreurs dedans (il y en aura!).

    Voilà le petit code de principe pour tes questions:

    Code html :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <html>
     
    <head>
    <meta charset="utf-8">
    <script type="text/javascript" src="./src/brython.js"></script>
    <script type="text/javascript" src="./src/brython_stdlib.js"></script>
    </head>
     
    <body onload="brython({debug:1, indexedDB:false})">
     
    <script type="text/python3">
    from browser import document, alert
    import random
     
    questions = [["question1", "A", "B", "C", "A"], 
                 ["question2", "A", "B", "C", "B"], 
                 ["question3", "A", "B", "C", "C"]
                ]
     
    question = "" # variable globale
     
    def nouvellequestion(evt):
        global question
        if document['suite'].value.upper()=="O" and questions!=[]:
            n = random.randint(0, len(questions)-1)
            question = questions.pop(n)
     
            document['question'].clear()
            document['question'].text = question[0]
            document['choix1'].clear()
            document['choix1'].text = question[1]
            document['choix2'].clear()
            document['choix2'].text = question[2]
            document['choix3'].clear()
            document['choix3'].text = question[3]
     
            document['reponse'].value = ""
            document['solution'].text = "Solution"
            document['suite'].value = "O"
     
        else:
            alert('Terminé!')
     
    def affichecorrection(evt):
        rep = document['reponse'].value
        if rep!="" and rep[0].upper()==question[4]:
            document['solution'].text = "Bonne réponse!"
        else:
            document['solution'].text = "Faux! La bonne réponse est: {}".format(question[4])
     
    document['bouton1'].bind('click', affichecorrection)
    document['bouton2'].bind('click', nouvellequestion)
     
    </script>
     
    <p>Répondre à la question</p>
    <br/>
    <div id="question">Question</div>
    <div id="choix1">Choix 1</div>
    <div id="choix2">Choix 2</div>
    <div id="choix3">Choix 3</div>
    <br/>
    <div>Votre réponse:  <input id="reponse" value=""><button id="bouton1">Cliquez !</button></div>
    <br/>
    <div id="solution">Solution</div>
    <br/>
    <div>Nouvelle question? (O/N) <input id="suite" value="O"><button id="bouton2">Cliquez !</button></div>
     
    </body>
    </html>


    Bon courage!

    [Edit] => Et si tu veux faire facilement une jolie page web, rien ne t'empêche de la fabriquer avec un éditeur html "wysiwyg" gratuit comme bluegriffon (http://bluegriffon.org/). Tu pourras ensuite en modifier le source html pour y intégrer le code brython.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Membre à l'essai
    Re-brython
    Merci ,je reviens de mon cours d'ISN et mon prof m'a conseillé de faire au plus simple( de faire du python avec l'interpreteur) car les oraux sont proches, j'abandonne l'idée de brython pour le moment,néanmoins pendant les grandes vacances ,je vais y revenir

###raw>template_hook.ano_emploi###