Homepage von Papa

Projekt Schiffeversenken

Arbeiten mit Flask

Die Installation von Flask erfolgt über das Terminal mit:

pip install flask

Bevor wir starten, überlegen wir, ob wir eine virtuelle Umgebung verwenden wollen. Vorteile:

  • Isolierte Installation der Pakete
  • Keine Auswirkungen auf andere Projekte

Solltet Ihr Euch für eine virtuelle Umgebung entscheiden, müsst Ihr diese erst einrichten, bevor Ihr Flask installiert. Wie das geht, findet Ihr über eine Internetrecherche.


Ich habe mich gegen eine virtuelle Umgebeung entschieden, sauber wäre es allerdings.

Egal wie Ihr Euch entscheidet, wir gehen jetzt unsere erste Version an.

Schauen wir kurz auf die Struktur:

Cool

Übertragen in VSCode sieht das bei mir dann so aus:

Cool

Hinweis

Bevor Ihr alles per Hand kopiert, könnt Ihr Euch auch die Sourcen hier oder über den Button unten herunterladen.

In die Datei app.py kopiert Ihr folgendes:

from app_init import create_app

app = create_app()

if __name__ == '__main__':
    app.run(debug=True)

In app_init.py:

from flask import Flask

def create_app():
    app = Flask(__name__)

    # Blueprints registrieren
    from routes import main
    app.register_blueprint(main)

    return app

Weiter geht es mit routes.py:

from flask import Blueprint, render_template

# Erstelle den Blueprint für die Routen
main = Blueprint('main', __name__)

@main.route('/')
def index():
    return render_template('index.html')
    

Die Datei base.html sieht so aus::

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8" />
	<title>I can haz embedded CSS and JS</title>
	<style>
		@media print {
			p { color: red !important; }
		}
	</style>
</head>
<body>
	<h1>I can haz embedded CSS and JS</h1>
	<script>
	if (true) {
		console.log('foo');
	}
	</script>

</body>
</html>

Dazu die Datei index.html:

{% extends 'base.html' %}
{% block content %}
<h3>Kann losgehen?</h3>
<div class="button-text-container">
    <button type="submit" class="button-index">Go</button>
</div>
{% endblock %}

Und damit es schon einen ersten Eindruck gibt, in die Datei styles.css kommt folgendes:

/* Grundlayout */
body {
  font-family: 'Montserrat', Verdana, Geneva, Tahoma, sans-serif; /* Schriftart */
  background-color: #f8f9fa;
  margin: 0;
  padding: 20px;
  color: #333;
}

/* Button */
.button-index {
  padding: 10px 20px;
  margin: 5px;
  background-color: #007bff;
  border: none;
  color: white;
  font-weight: bold;
  border-radius: 5px;
  cursor: pointer;
}
  

Die Datei games.js bleibt erst einmal leer. Lassen wir es laufen!

Jetzt müsste bei Euch auch wieder der Run-Button oben rechts funktionieren (Bild zum Vergrößern anklicken):

Cool

Nun wieder dem Link folgen oder im Browser http://127.0.0.1:5000/ eingeben, dann landet Ihr auf der Startseite der Anwendung:

Cool

Falls nicht, Starten der Anwendung über ein neues Terminalfenster, dann "flask run" eingeben, das sollte es auch tun:

Cool

Damit sind wir am Ende von version_01 eine genauere Beschreibung gibt es in der Projektdoku (Download hier). Den Sourcecode könnt Ihr hier oder über den Button unten herunterladen.


  • Zurück
  • Weiter

Inhaltsverzeichnis:

1. Vorwort
2. Das Projekt
3. Vorarbeiten
4. Das Projekt „Schiffeversenken“
4.1. Der Funktionsumfang
4.2. Die Planung der Umsetzung
4.3. Das Coden
4.3.1 Arbeiten mit Flask
4.3.2 Die Datenbank
4.3.3 Der Spielstart
4.3.4 Der Spielcode
4.3.5 Die Spielfelder
4.3.6 Setzen der Schiffe
4.3.7 Das Spielen
4.4. Die Veröffentlichung
5. Abschluss

© by Papa. Die Seite ist online seit 2020.

Menu

  • Startseite
  • Projekte
    • Übersicht aller Projekte
    • Schiffeversenken
    • Taschenrechner
    • Nachbau Snake
  • Helferlein
    • Übersicht Hilfprogramme
    • Fonts in pygame
    • Quellcode nach HTML
    • Text nach HTML
  • Impressum
  • Disclaimer

Modal content goes here