Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
ef_informatik:web_app [2021-08-26 07:39] – hof | ef_informatik:web_app [2021-12-15 13:41] (aktuell) – [Async Functions] hof | ||
---|---|---|---|
Zeile 72: | Zeile 72: | ||
# Javascript | # Javascript | ||
- | Die meisten Browser können Javascript (oder ECMAScript) ausführen, um Webseiten dynamisch zu gestalten. Die Syntax ist ähnlich wie C++, C# oder Java, am bestem am Beispiel: | + | Die meisten Browser können Javascript (oder ECMAScript) ausführen, um Webseiten dynamisch zu gestalten. Die Syntax ist ähnlich wie `C++`, C# oder Java, am bestem am Beispiel: |
<file ecmascript connect_four.js> | <file ecmascript connect_four.js> | ||
Zeile 178: | Zeile 178: | ||
* Hinweis: [[https:// | * Hinweis: [[https:// | ||
+ | ## Musterlösung 2 | ||
+ | |||
+ | Wie immer gilt: es gibt unendlich viele korrekte Lösungen. {{ : | ||
# HTTP | # HTTP | ||
Zeile 185: | Zeile 188: | ||
## Request & Response | ## Request & Response | ||
{{ : | {{ : | ||
- | Jeder Request verlangt eine bestimmte // | + | Jeder Request verlangt eine bestimmte // |
Der Request enthält eine Anzahl zusätzlicher Informationen als // | Der Request enthält eine Anzahl zusätzlicher Informationen als // | ||
Zeile 218: | Zeile 221: | ||
Um diese Problem zu lösen, werden wir die App auf einen Web-Server verschieben. | Um diese Problem zu lösen, werden wir die App auf einen Web-Server verschieben. | ||
* Install Flask mit '' | * Install Flask mit '' | ||
- | * Move static files to ''/ | + | |
+ | * Transfer existing code to web app: | ||
+ | | ||
+ | * Create '' | ||
+ | <code python app.py> | ||
+ | from flask import Flask | ||
+ | |||
+ | app = Flask(__name__) | ||
+ | |||
+ | @app.route("/" | ||
+ | def hello_world(): | ||
+ | return "< | ||
+ | </ | ||
* Turn HTML into a Jinja2 template. | * Turn HTML into a Jinja2 template. | ||
- | * Add JSON endpoints | + | * Create a connect-four game model in python. |
+ | * Our App will communicate with the Server through | ||
+ | * see an [[https:// | ||
+ | * we need endpoints for | ||
+ | * fetching gamestate | ||
+ | * inserting a piece | ||
+ | * tricky part: identify the user using [[https:// | ||
+ | * Instead of holding game state on the client side, fetch it from the server. | ||
+ | |||
+ | Weitere Ideen: | ||
+ | * Long polling für den Game-State | ||
+ | * Websockets (nicht direkt unterstützt in Flask, aber in [[https:// | ||
# Javascript 2 | # Javascript 2 | ||
Zeile 305: | Zeile 331: | ||
* [[https:// | * [[https:// | ||
+ | {{ : |