Zum Inhalt

Webentwicklung & APIs

1. Full-Stack-Webentwicklung und APIs

In diesem Abschnitt erfahren Sie, wie Sie Webanwendungen erstellen, Datenendpunkte (APIs) erstellen, Benutzerformulare verarbeiten und dynamische Webseiten anzeigen.

Tools und Bibliotheken

  • Flask: Ein leichtes Tool (Mikro-Framework), das zum schnellen Einrichten von Webservern und zum Weiterleiten des Webverkehrs an die richtigen Funktionen verwendet wird.
  • Jinja2: Eine intelligente Textvorlagen-Engine, die es Python-Skripten ermöglicht, Live-Datenbankvariablen direkt in Standard-HTML-Code einzufügen.
  • Werkzeug: Das robuste WSGI-Toolkit, das hinter den Kulissen in Flask arbeitet, um die Datenweiterleitung vom Server zum Browser und sicheres Passwort-Hashing zu verwalten.
  • Integriert csv & sqlite3: Standardmäßige, integrierte Bibliotheken, die zum Speichern von Datenbankeinträgen oder strukturellen Benutzertabellen in Textdateien oder isolierten lokalen SQL-Datenbanken verwendet werden.

Branchen-Upgrades (was Teams im großen Maßstab nutzen)

Während sich Flask hervorragend für Microservices eignet, tauschen große Produktionstechnikteams es häufig gegen Plattformen aus, die für umfangreiche oder spezielle Aufgaben entwickelt wurden.

1. Leistungsstarke asynchrone APIs: FastAPI

FastAPI ist auf absolute Geschwindigkeit ausgelegt und basiert auf modernen Python-Hinweisen, um Daten automatisch zu validieren, automatisch interaktive API-Dokumente (Swagger UI) zu generieren und asynchrone Anforderungen gleichzeitig zu verarbeiten.

  • Wie es im Code aussieht:
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    # Asynchronous design helps handle thousands of requests simultaneously
    return {"message": "Hello from high-performance FastAPI"}

2. Die komplette Unternehmensbatterie: Django

Ein monolithisches Framework, das auf der Philosophie „Batterien inklusive“ basiert. Django wird standardmäßig mit einem sofort einsatzbereiten Administrationsbereich, einem integrierten Object-Relational Mapper (ORM) für SQL-Datenbanken und vollständig gehärteten Benutzerauthentifizierungsfunktionen geliefert.

  • Wie es im Code aussieht (einfache Ansicht und Routing):
from django.http import HttpResponse
from django.urls import path

# 1. Views handle the incoming web request and return a response
def home_view(request):
    return HttpResponse("Hello from enterprise-scale Django!")

# 2. URL Patterns map the browser paths directly to your view functions
urlpatterns = [
    path('welcome/', home_view), # Accessing /welcome/ triggers home_view
] 

Ein riesiges, voll ausgestattetes Framework. Es verfügt über alles Integrierte (wie Benutzeranmeldesysteme und Admin-Panels) für große Unternehmens-Webanwendungen.


Kernmethoden und Codebeispiel

  • Flask(__name__): Startet Ihre Webanwendung und bereitet die Serverumgebung vor.
  • @app.route('/endpoint', method=['GET', 'POST']): Ein Traffic Director, der einen bestimmten Weblink (wie „/login“) mit einer Python-Funktion verbindet. Es steuert auch, ob die Seite Daten liest („GET“) oder Daten akzeptiert („POST“).
  • render_template('index.html', context): Nimmt eine lokale HTML-Datei, füllt sie mithilfe von Jinja mit dynamischen Python-Daten und sendet die fertige Webseite an den Browser des Benutzers.
  • request.form.to_dict(): Sammelt sicher Informationen, die ein Benutzer in ein Online-Formular eingegeben hat, und konvertiert sie in ein Standard-Python-Wörterbuch.
from flask import Flask, render_template, request

# Initialize the central Flask server application context
app = Flask(__name__)

# Route decorator maps url endpoints to explicit execution methods
@app.route('/submit', methods=['GET', 'POST'])
def handle_form():
    # Check if a user submitted a browser data form payload
    if request.method == 'POST':
        # Convert incoming HTML form data into a standard Python dictionary
        user_data = request.form.to_dict()
        print(f"Received production payload data: {user_data}")

        # Send variables dynamically into an HTML file using Jinja2 templates
        return render_template('index.html', status="Success", user=user_data.get('username'))

    return "Please submit your web request form."

if __name__ == '__main__':
    # Launch local development environment loop with live hot-reloading active
    app.run(debug=True)