Python-Code und HTML

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
MatheMagie
User
Beiträge: 7
Registriert: Montag 21. November 2016, 11:16

Hallo zusammen,

ich spiele gerade damit herum ein Chat Interface in HTML zu erzeugen.
Das klappt soweit auch ganz gut und ich habe in meinem 'Main' ein <p> Element.

Code: Alles auswählen

<section class="main">
    <p id="output"></p>
</section>
Nun soll dieses ueber ein Python-Script immer anders befuellt werden. In meiner HTML Datei steht als folgendes:

Code: Alles auswählen

<py-script src="Hello.py"></py-script>
Jetzt moechte ich in meinem Python Script zunaechst das HTML Element mit der id = 'output' finden
und anschliessend den Beispieltext 'hello wold' zurueckgeben.

Code: Alles auswählen

html_filepath = 'start.html'
html_content = open(html_filepath, 'r')

# parse the HTML content w/ BeautifulSoup
sp = BeautifulSoup(html_content, 'html.parser')

# ind the "output" element
# output_element = sp.find(id='output')
output_element.string = 'test'
Das klappt auch soweit nur wie bekomme ich das jetzt wieder zuruck in meine HTML Datei? :D
Oder bin ich hier ganz auf dem Holzweg?

Kurzer Hinweis:
Die Idee soll spater sein, dass der User im Webinterface 2 Zahlen eingeben kann, in Python soll dann die Summe ausgerechnet werden und im "Output" wieder angezeigt werden.


Liebe Gruesse
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Webinterface?
HTML?
Python Datei als src?

Klingt als würdest du versuchen lokal einfach HTML Dateien zu speichern und denkst, der Browser würde da etwas ausführen.
Nö.
Wenn das dein Gedanke ist, musst du auf JavaScript zurückgreifen.
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

So ganz ohne Python und ohne dass da etwas an den Server zum berechnen geschickt werden müsste.

Code: Alles auswählen

<!DOCTYPE html>
<html lang="de">
  <head><title>Addieren</title></head>
  <section>
    <input type="number" name="a" value="0">
    + <input type="number" name="b" value="0">
    = <output id="output">0</output>
    <button id="calculate_button">Berechnen</button>
  </section>
  
  <script type="text/javascript">
    let aInput = document.getElementsByName('a')[0];
    let bInput = document.getElementsByName('b')[0];
    let output = document.getElementById('output');
    document.getElementById('calculate_button').addEventListener(
      'click', () => output.value = aInput.valueAsNumber + bInput.valueAsNumber
    );
  </script>
</html>
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten