Quickstarters
Feature Overview
Wie man ein Backend für Flask erstellt?
41 min
einführung in diesem tutorial lernen sie wie man ein backend für flask mit back4app erstellt flask ist ein leichtgewichtiges backend framework , das http anfragen mühelos verarbeitet und effizient im debug modus während der entwicklung funktioniert wir werden die integration wesentlicher back4app funktionen durchgehen – wie datenbankverwaltung, cloud code funktionen, rest und graphql apis, benutzerauthentifizierung und echtzeitanfragen (live queries) – um ein sicheres, skalierbares und robustes backend für ihre flask anwendung zu erstellen sie werden auch sehen, wie die schnelle einrichtung und die intuitive umgebung von back4app die zeit und den aufwand im vergleich zur manuellen konfiguration von servern und datenbanken drastisch reduzieren können wir werden python code verwenden, um flask mit dem back4app parse server zu verbinden auf dem weg dorthin werden sie praktische erfahrungen mit wichtigen funktionen sammeln, einschließlich erweiterter sicherheitsfunktionen, der planung von aufgaben mit cloud jobs und der einrichtung von webhooks für externe integrationen am ende dieses tutorials sind sie gut vorbereitet, um dieses grundlegende setup in eine produktionsbereite anwendung zu erweitern oder bei bedarf benutzerdefinierte logik und drittanbieter apis einfach zu integrieren voraussetzungen um dieses tutorial abzuschließen, benötigen sie ein back4app konto und ein neues back4app projekt erste schritte mit back4app https //www back4app com/docs/get started/new parse app wenn sie kein konto haben, können sie eines kostenlos erstellen befolgen sie die obige anleitung, um ihr projekt vorzubereiten grundlegende flask entwicklungsumgebung sie können flask über pip install flask stellen sie sicher, dass sie python 3 7+ auf ihrem computer installiert haben pip install parse dieses python paket ermöglicht es ihrer flask app, mit dem parse server von back4app zu interagieren vertrautheit mit python und flask konzepten offizielle flask dokumentation https //flask palletsprojects com/en/2 2 x/ wenn sie neu bei flask sind, lesen sie die offiziellen dokumente oder ein anfänger tutorial, bevor sie beginnen stellen sie sicher, dass sie alle diese voraussetzungen erfüllt haben, bevor sie beginnen ihr back4app projekt eingerichtet und ihre lokale flask umgebung bereit zu haben, wird ihnen helfen, leichter folgen zu können schritt 1 – erstellen eines neuen projekts auf back4app und verbindung herstellen ein neues projekt erstellen der erste schritt beim erstellen ihres flask backends auf back4app besteht darin, ein neues projekt zu erstellen wenn sie noch keines erstellt haben, befolgen sie diese schritte melden sie sich bei ihrem back4app konto an klicken sie auf die schaltfläche „neue app“ in ihrem back4app dashboard geben sie ihrer app einen namen (z b „flask backend tutorial“) sobald das projekt erstellt ist, wird es in ihrem back4app dashboard aufgeführt dieses projekt ist die grundlage aller backend konfigurationen verbinde das parse sdk mit flask back4app basiert auf der parse plattform, um ihre daten zu verwalten, echtzeitfunktionen bereitzustellen, die benutzerauthentifizierung zu handhaben und mehr um ihre flask anwendung mit back4app zu verbinden, müssen sie das parse python paket installieren und es mit den anmeldeinformationen aus ihrem back4app dashboard initialisieren rufen sie ihre parse schlüssel ab navigieren sie in ihrem back4app dashboard zu den „app einstellungen“ oder dem abschnitt „sicherheit & schlüssel“, um ihre anwendungs id und client schlüssel (oder rest api schlüssel falls erforderlich) zu finden sie finden auch die parse server url (oft im format https //parseapi back4app com ) installieren sie das parse python sdk in ihrer flask umgebung, indem sie folgendes ausführen pip install parse initialisieren sie parse in ihrer flask anwendung erstellen sie eine datei (z b parse config py ) in einem verzeichnis namens app oder wo immer sie ihre backend module speichern parse config py import parse \# replace the placeholders with your back4app credentials parse application id = "your application id" parse client key = "your client key" parse server url = "https //parseapi back4app com" dann, in ihrer haupt flask app datei (z b app py ), können sie import flask app flask module zusammen mit ihrer parse konfiguration importieren from flask import flask, request, jsonify import parse config # this ensures parse is already set up app = flask( name ) @app route('/') def index() return "hello, flask + back4app!" if name == ' main ' app run(debug=true) # the debug mode helps in local development server durch das abschließen dieses schrittes haben sie eine sichere verbindung zwischen ihren flask frontend routen und dem back4app backend hergestellt alle anfragen und datenübertragungen werden sicher durch den parse python code geleitet, wodurch die komplexität manueller rest oder graphql aufrufe verringert wird (obwohl sie diese bei bedarf weiterhin verwenden können) schritt 2 – datenbank einrichten erstellen eines datenmodells bevor wir beginnen, lassen sie uns über die einrichtung der datenbank sprechen sie können ihr datenschema im back4app dashboard entwerfen oder parse es dynamisch erstellen lassen zum beispiel könnten sie eine klasse namens „todo“ mit feldern wie title und iscompleted erstellen navigieren sie zum abschnitt „datenbank“ in ihrem back4app dashboard erstellen sie eine neue klasse (z b „todo“) und fügen sie relevante spalten hinzu, wie titel (string) und iscompleted (boolean) back4app unterstützt verschiedene datentypen, wie string , number , boolean , object , date , file , pointer , array , relation , geopoint , und polygon sie können den geeigneten typ für jedes feld auswählen erstellen eines datenmodells mit dem ki agenten wenn sie einen automatisierten ansatz bevorzugen, können sie auch den ki agenten von back4app verwenden öffnen sie den ki agenten von ihrem app dashboard beschreiben sie ihr datenmodell in einfacher sprache (z b „erstellen sie eine todo klasse mit den feldern titel und istabgeschlossen in back4app “) lassen sie den ki agenten das schema für sie erstellen daten lesen und schreiben mit sdk in flask können sie daten erstellen und abrufen, indem sie parse aus ihrer parse config py initialisierung importieren from flask import flask, request, jsonify import parse import parse config app = flask( name ) @app route('/create todo', methods=\['post']) def create todo() data = request get json() # import json to parse the payload title = data get('title') is completed = data get('iscompleted', false) todo = parse object factory('todo') todo item = todo() todo item title = title todo item iscompleted = is completed try saved todo = todo item save() return jsonify({"success" true, "objectid" saved todo objectid}), 200 except exception as e return jsonify({"error" str(e)}), 400 @app route('/fetch todos', methods=\['get']) def fetch todos() todo = parse object factory('todo') query = todo query try todos = query find() \# convert to json compatible response results = \[{"objectid" t objectid, "title" t title, "iscompleted" t iscompleted} for t in todos] return jsonify(results), 200 except exception as e return jsonify({"error" str(e)}), 400 if name == ' main ' app run(debug=true) diese flask app datei verarbeitet http anfragen zum erstellen und lesen von todo elementen in ihrer back4app datenbank daten lesen und schreiben mit rest api wenn sie direkte rest aufrufe bevorzugen, können sie mit curl von der befehlszeile curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo daten lesen und schreiben mit graphql api ebenso bietet back4app einen graphql endpunkt zum beispiel mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } arbeiten mit live abfragen (optional) wenn sie echtzeit updates , bietet back4app live abfragen in einem flask szenario würden sie typischerweise eine separate clientseitige oder serverseitige abonnementsbibliothek verwenden, die eine websocket verbindung zum live query server von back4app aufrechterhalten kann aktivieren sie live abfragen in ihrem back4app dashboard unter den servereinstellungen ihrer app verwenden sie einen parse livequery client der sich mit wss\ //your subdomain here b4a io verbindet und auf erstellungs /aktualisierungs /löschereignisse hört schritt 3 – anwendung von sicherheit mit acls und clps kurze übersicht back4app bietet zugriffskontrolllisten (acls) und klassenebene berechtigungen (clps) an, um daten zu sichern acls gelten für einzelne objekte, während clps für die gesamte klasse gelten dies hilft ihnen, lese /schreiboperationen pro benutzer, rolle oder der öffentlichkeit einzuschränken oder zuzulassen einrichten von klassenebene berechtigungen gehe zu deinem back4app dashboard , wähle deine app aus und öffne den datenbank bereich wähle eine klasse (z b „todo“) öffne die klasse level berechtigungen registerkarte konfiguriere deine standardwerte, wie „erfordert authentifizierung“ oder „kein zugriff “ konfigurieren von acls im code du kannst acls im python code anwenden @app route('/create private todo', methods=\['post']) def create private todo() data = request get json() user id = data get('userid') title = data get('title') \# assume you have a pointer to the user or a way to get user from id parseuser = parse user user query = parseuser query user obj = user query get(user id) todo = parse object factory('todo') todo item = todo() todo item title = title acl = parse acl() acl setreadaccess(user obj, true) acl setwriteaccess(user obj, true) acl setpublicreadaccess(false) acl setpublicwriteaccess(false) todo item acl = acl saved todo = todo item save() return jsonify({"success" true, "objectid" saved todo objectid}), 200 schritt 4 – schreiben von cloud code funktionen warum cloud code cloud code ist perfekt, um python code (oder javascript in anderen szenarien) serverseitig auszuführen, sodass du deine eigene infrastruktur nicht hosten musst du kannst aufgaben wie die validierung von daten, die durchführung komplexer berechnungen oder die integration mit externen diensten direkt vom parse server ausführen beispiel funktion da die standard cloud code umgebung für back4app node js verwendet, würden sie ihren cloud code in javascript schreiben sie können jedoch diese serverseitigen skripte auch von ihrer flask app aus auslösen zum beispiel könnte eine node js cloud funktion so aussehen main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); bereitstellung verwenden sie die back4app cli https //www back4app com/docs/local development/parse cli zur bereitstellung ihres cloud codes \# step 1 install the cli curl https //raw\ githubusercontent com/back4app/parse cli/back4app/installer sh | sudo /bin/bash \# step 2 configure your account key b4a configure accountkey \# step 3 deploy your code b4a deploy alternativ können sie über das back4app dashboard bereitstellen, indem sie ihren js code in cloud code > funktionen einfügen und auf „bereitstellen“ klicken aufrufen ihrer funktion in flask können sie diese cloud funktion über rest aufrufen import requests @app route('/text length', methods=\['post']) def get text length() data = request get json() text = data get('text') url = "https //parseapi back4app com/functions/calculatetextlength" headers = { "x parse application id" "your app id", "x parse rest api key" "your rest api key", "content type" "application/json" } payload = {"text" text} response = requests post(url, json=payload, headers=headers) return jsonify(response json()), response status code schritt 5 – authentifizierung konfigurieren benutzerauthentifizierung im back4app dashboard aktivieren oder einrichten back4app nutzt standardmäßig die user klasse parse kümmert sich um die passwort hashing, sitzungstoken und sichere speicherung sie können diese funktionen in ihren app einstellungen verwalten codebeispiele @app route('/signup', methods=\['post']) def sign up user() data = request get json() username = data get('username') password = data get('password') email = data get('email') user = parse user() user username = username user password = password user email = email try user sign up() return jsonify({"success" true}), 200 except exception as e return jsonify({"error" str(e)}), 400 @app route('/login', methods=\['post']) def log in user() data = request get json() username = data get('username') password = data get('password') try parse user login(username, password) return jsonify({"success" true}), 200 except exception as e return jsonify({"error" str(e)}), 400 soziale anmeldung back4app und parse können mit sozialen anbietern wie google, apple oder facebook integriert werden die einrichtung variiert, daher verweisen sie auf die offiziellen parse social login dokumente https //www back4app com/docs/platform/sign in with apple schritt 6 – dateispeicherung verwalten dateispeicherung einrichten sie können dateien von flask aus in ihre parse datenbank hochladen, indem sie ein parse file() objekt in der node basierten umgebung erstellen oder direkte rest aufrufe von python aus verwenden wenn sie referenzen auf diese dateien in ihren klassen speichern, werden sie leicht abrufbar @app route('/upload file', methods=\['post']) def upload file() file = request files\['file'] # from an html form or an api call file name = file filename url = "https //parseapi back4app com/files/" + file name headers = { "x parse application id" "your app id", "x parse rest api key" "your rest api key", "content type" file content type } response = requests post(url, data=file read(), headers=headers) return jsonify(response json()), response status code beispiel nach dem hochladen einer datei erhalten sie eine datei url, die sie in ihrer datenbank speichern können sie können diese datei dann nach bedarf in ihrem html template rendern oder referenzieren schritt 7 – e mail verifizierung und passwortzurücksetzung übersicht die e mail verifizierung stellt sicher, dass gültige e mail adressen vorhanden sind, und die passwortzurücksetzung hilft benutzern, sicher auf ihr konto zuzugreifen back4app dashboard konfiguration gehen sie zu ihren e mail einstellungen im back4app dashboard aktivieren sie die e mail verifizierung und konfigurieren sie e mail vorlagen aktivieren sie die passwortzurücksetzung um passwortwiederherstellungslinks an die e mail des benutzers zu senden code/implementierung sobald aktiviert, erhält jeder neue benutzer, der sich mit einer e mail anmeldet, einen verifizierungslink für die passwortzurücksetzung können sie die integrierten methoden von parse über rest oder von ihren flask routen aus aufrufen schritt 8 – aufgaben mit cloud jobs planen was cloud jobs tun cloud jobs ermöglichen es ihnen, hintergrundaufgaben wie das bereinigen von daten oder das senden von regelmäßigen e mails zu planen zum beispiel können sie alte datensätze jeden tag ohne benutzerintervention löschen beispiel // main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); gehen sie dann von ihrem back4app dashboard aus gehen sie zu den app einstellungen > servereinstellungen > hintergrundjobs planen sie diesen job, um täglich oder in ihrem bevorzugten intervall ausgeführt zu werden schritt 9 – integration von webhooks definition webhooks let your back4app app send data to external services whenever certain triggers occur this is useful for integrations with payment gateways, slack, analytics, or any third party services configuration navigate to the webhooks configuration in your back4app dashboard > more > webhooks add a new webhook set the endpoint (e g , https //your external service com/webhook endpoint https //your external service com/webhook endpoint ) select the triggers for which the webhook will fire example if you want to notify a slack channel whenever a new record is created in “todo,” set the slack webhook url then, whenever a new todo is saved, slack will receive a post request containing its details step 10 – exploring the back4app admin panel the back4app admin app provides a user friendly interface for non technical members of your team it’s a model centric interface for crud operations and enterprise level tasks wo man es findet gehe zu deinem app dashboard wähle mehr > admin app und aktiviere sie erstelle einen admin benutzer und wähle eine subdomain, um das panel zu hosten sobald aktiviert, kannst du dich mit deinen admin anmeldeinformationen anmelden, um daten bequemer zu verwalten – ohne benutzerdefinierte endpunkte oder abfragen in deinem python code schreiben zu müssen fazit durch das befolgen dieses umfassenden tutorials haben sie ein sicheres backend für eine flask app auf back4app erstellt eine datenbank konfiguriert mit klassenschemas, datentypen und beziehungen echtzeitabfragen integriert (live queries) für sofortige datenaktualisierungen sicherheitsmaßnahmen angewendet unter verwendung von acls und clps, um den datenzugriff zu schützen und zu verwalten cloud code funktionen implementiert, um benutzerdefinierte geschäftslogik auf der serverseite auszuführen benutzerauthentifizierung eingerichtet mit unterstützung für e mail verifizierung und passwortzurücksetzungen datei uploads verwaltet und abrufe, mit optionalen datei sicherheitskontrollen cloud jobs geplant für automatisierte hintergrundaufgaben webhooks verwendet zur integration mit externen diensten das back4app admin panel erkundet für die datenverwaltung mit einem soliden flask backend framework das render template dateien zurückgeben kann (wenn gewünscht) und einer robusten back4app konfiguration sind sie nun in der lage, funktionsreiche, skalierbare und sichere anwendungen zu entwickeln sie können ihren flask run befehl ausführen, um den entwicklungsserver zu starten und weiter zu programmieren befehlszeilen aufgaben werden einfach mit methoden nach der definition routen, die json nutzlasten akzeptieren nächste schritte erstellen sie eine produktionsbereite flask app durch die erweiterung dieses backends, um komplexere datenmodelle, caching strategien und leistungsoptimierungen zu behandeln integrieren sie erweiterte funktionen wie spezialisierte authentifizierungsabläufe, rollenbasierte zugriffskontrolle oder externe apis (wie zahlungs gateways) überprüfen sie die offizielle dokumentation von back4app für tiefere einblicke in erweiterte sicherheit, leistungsoptimierung und protokollanalyse erforschen sie andere tutorials zu echtzeit chat anwendungen, iot dashboards oder standortbasierten diensten sie können die hier erlernten techniken mit drittanbieter apis kombinieren, um komplexe, reale anwendungen zu erstellen