Come costruire un backend per Flask?
In questo tutorial, imparerai come costruire un backend per Flask utilizzando Back4App.
Flask è un framework backend leggero che gestisce le richieste HTTP con facilità e funziona in modo efficiente in modalità debug durante lo sviluppo.
Esploreremo l'integrazione delle funzionalità essenziali di Back4App—come la gestione del database, le Funzioni Cloud Code, le API REST e GraphQL, l'autenticazione degli utenti e le query in tempo reale (Live Queries)—per creare un backend sicuro, scalabile e robusto per la tua applicazione Flask.
Vedrai anche come la rapida configurazione di Back4App e l'ambiente intuitivo possano ridurre drasticamente il tempo e lo sforzo rispetto alla configurazione manuale di server e database.
Utilizzeremo codice Python per connettere Flask al server Parse di Back4App. Lungo il percorso, acquisirai esperienza pratica con funzionalità chiave, inclusi avanzati strumenti di sicurezza, pianificazione di attività con Cloud Jobs e configurazione di webhook per integrazioni esterne.
Alla fine di questo tutorial, sarai ben preparato per migliorare questa configurazione di base in un'applicazione pronta per la produzione o per incorporare facilmente logica personalizzata e API di terze parti secondo necessità.
Per completare questo tutorial, avrai bisogno di:
- Un account Back4app e un nuovo progetto Back4app Iniziare con Back4app. Se non hai un account, puoi crearne uno gratuitamente. Segui la guida sopra per preparare il tuo progetto.
- Ambiente di sviluppo Flask di base Puoi installare Flask tramite pip install flask. Assicurati di avere Python 3.7+ installato sul tuo computer.
- pip install parse Questo pacchetto Python consente alla tua app Flask di interagire con il Parse Server di Back4App.
- Familiarità con i concetti di Python e Flask Documentazione ufficiale di Flask. Se sei nuovo in Flask, rivedi la documentazione ufficiale o un tutorial per principianti prima di iniziare.
Assicurati di avere tutti questi prerequisiti in atto prima di iniziare. Avere il tuo progetto Back4app configurato e il tuo ambiente Flask locale pronto ti aiuterà a seguire più facilmente.
Il primo passo per costruire il tuo backend Flask su Back4App è creare un nuovo progetto. Se non ne hai già creato uno, segui questi passaggi:
- Accedi al tuo account Back4App.
- Clicca sul pulsante “Nuova App” nel tuo dashboard di Back4App.
- Dai un nome alla tua app (ad esempio, “Flask-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
Una volta creato il progetto, lo vedrai elencato nel tuo dashboard di Back4app. Questo progetto è la base di tutte le configurazioni del backend.
Back4App si basa sulla Parse Platform per gestire i tuoi dati, fornire funzionalità in tempo reale, gestire l'autenticazione degli utenti e altro ancora.
Collegare la tua applicazione Flask a Back4App implica l'installazione del parse pacchetto Python e la sua inizializzazione con le credenziali dal tuo dashboard di Back4App.
Recupera le tue chiavi Parse: Nel tuo dashboard di Back4app, vai alla sezione “Impostazioni App” o “Sicurezza e Chiavi” della tua app per trovare il tuo Application ID e Client Key (o REST API Key se necessario). Troverai anche il Parse Server URL (spesso nel formato https://parseapi.back4app.com).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Installa il Parse Python SDK nel tuo ambiente Flask eseguendo:
Inizializza Parse nella tua applicazione Flask: Crea un file (ad esempio, parse_config.py) in una directory chiamata app o ovunque tu memorizzi i tuoi moduli backend:
Poi, nel tuo file principale dell'app Flask (ad esempio, app.py), puoi importare i moduli dell'app flask insieme alla tua configurazione Parse:
Completando questo passaggio, hai stabilito una connessione sicura tra le tue rotte front-end Flask e il backend Back4App. Tutte le richieste e le transazioni di dati vengono instradate in modo sicuro attraverso il codice Python di Parse, riducendo la complessità delle chiamate REST o GraphQL manuali (anche se puoi comunque usarle quando necessario).
Prima di iniziare, parliamo della configurazione del database. Puoi progettare il tuo schema dati nel dashboard di Back4App o lasciare che Parse lo crei al volo. Ad esempio, potresti creare una classe chiamata “Todo” con campi come title e isCompleted.
- Naviga nella sezione “Database” nel tuo dashboard di Back4App.
- Crea una nuova classe (ad esempio, “Todo”) e aggiungi colonne pertinenti, come title (String) e isCompleted (Boolean).
![Crea una nuova classe Crea una nuova classe](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4app supporta vari tipi di dati, come String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, e Polygon. Puoi scegliere il tipo appropriato per ciascun campo.
Se preferisci un approccio automatizzato, puoi anche utilizzare l'agente AI di Back4app:
- Apri l'agente AI dal tuo App Dashboard.
- Descrivi il tuo modello di dati in linguaggio semplice (ad es., “Crea una classe ToDo con i campi titolo e isCompleted in Back4app.”).
- Lascia che l'agente AI crei lo Schema per te.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
In Flask, puoi creare e recuperare dati importando parse dal tuo parse_config.py inizializzazione:
Questo file dell'app Flask gestisce le richieste http per creare e leggere elementi Todo nel tuo database Back4App.
Se preferisci chiamate REST dirette, puoi testare con curl dalla linea di comando:
Allo stesso modo, Back4app fornisce un endpoint GraphQL. Ad esempio:
Se hai bisogno di aggiornamenti in tempo reale, Back4app fornisce Query Live. In uno scenario Flask, di solito utilizzeresti una libreria di sottoscrizione separata lato client o lato server che può mantenere una connessione websocket al server di Query Live di Back4App.
- Abilita le Query Live nel tuo dashboard di Back4app sotto le Impostazioni del Server.
- Usa un client Parse LiveQuery che si connette a wss://YOUR_SUBDOMAIN_HERE.b4a.io e ascolta eventi di creazione/aggiornamento/cancellazione.
Back4app fornisce Liste di Controllo degli Accessi (ACL) e Permessi a Livello di Classe (CLP) per proteggere i dati. Le ACL si applicano a singoli oggetti, mentre i CLP si applicano all'intera classe. Questo ti aiuta a limitare o consentire operazioni di lettura/scrittura per utente, ruolo o pubblico.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Vai al tuo Dashboard di Back4app, seleziona la tua app e apri la sezione Database.
- Seleziona una classe (ad esempio, “Todo”).
- Apri la scheda delle autorizzazioni a livello di classe.
- Configura le tue impostazioni predefinite, come “Richiede autenticazione” o “Nessun accesso.”
Puoi applicare le ACL nel codice Python:
Il Cloud Code è perfetto per eseguire codice python (o JavaScript in altri scenari) lato server, così non devi ospitare la tua infrastruttura. Puoi eseguire attività come la convalida dei dati, l'esecuzione di calcoli complessi o l'integrazione con servizi esterni direttamente dal server Parse.
Poiché l'ambiente Cloud Code predefinito per Back4App utilizza Node.js, scriveresti il tuo Cloud Code in JavaScript. Tuttavia, puoi comunque attivare questi script lato server dalla tua app Flask. Ad esempio, una funzione Cloud di Node.js potrebbe apparire così:
Usa il Back4app CLI per distribuire il tuo Cloud Code:
In alternativa, puoi distribuire tramite il Dashboard di Back4app incollando il tuo codice JS in Cloud Code > Funzioni e cliccando su “Distribuisci.”
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
In Flask, puoi chiamare quella funzione cloud utilizzando REST:
Back4App sfrutta la User classe per impostazione predefinita. Parse gestisce l'hashing delle password, i token di sessione e lo storage sicuro. Puoi gestire queste funzionalità nelle tue Impostazioni dell'app.
Back4App e Parse possono integrarsi con fornitori sociali come Google, Apple o Facebook. I dettagli di configurazione variano, quindi fai riferimento alla Documentazione del login sociale di Parse.
Puoi caricare file nel tuo database Parse da Flask creando un parse.File() oggetto nell'ambiente basato su Node, oppure puoi utilizzare chiamate REST dirette da Python. Se memorizzi riferimenti a questi file nelle tue classi, diventano facilmente recuperabili.
Dopo aver caricato un file, riceverai un URL del file che puoi memorizzare nel tuo database. Puoi quindi visualizzare o fare riferimento a quel file nel tuo modello html secondo necessità.
La verifica dell'email garantisce indirizzi email validi e il ripristino della password aiuta gli utenti a recuperare l'accesso all'account in modo sicuro.
- Vai alle tue Impostazioni Email nel dashboard di Back4App.
- Abilita la verifica email e configura i modelli email.
- Abilita il ripristino della password per inviare link di recupero password all'email dell'utente.
Una volta abilitato, ogni nuovo utente che si registra con un'email riceve un link di verifica. Per il ripristino della password, puoi chiamare i metodi integrati di Parse tramite REST o dalle tue rotte Flask.
I Cloud Jobs ti permettono di pianificare attività in background come la pulizia dei dati o l'invio di email periodiche. Ad esempio, puoi eliminare record vecchi ogni giorno senza intervento dell'utente.
Poi, dal tuo Dashboard di Back4App:
- Vai a Impostazioni App > Impostazioni Server > Attività in Background.
- Pianifica questo lavoro per essere eseguito quotidianamente o all'intervallo che preferisci.
![Pianificazione di un Cloud Job Pianificazione di un Cloud Job](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Webhooks consentono alla tua app Back4app di inviare dati a servizi esterni ogni volta che si verificano determinati trigger. Questo è utile per integrazioni con gateway di pagamento, Slack, analisi o qualsiasi servizio di terze parti.
- Naviga alla configurazione dei Webhook nel tuo dashboard di Back4App > Altro > WebHooks.
- Aggiungi un nuovo Webhook.
- Seleziona i trigger per i quali il webhook verrà attivato.
![Aggiunta di un Webhook Aggiunta di un Webhook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Se desideri notificare un canale Slack ogni volta che viene creato un nuovo record in “Todo,” imposta l'URL del webhook di Slack. Poi, ogni volta che un nuovo Todo viene salvato, Slack riceverà una richiesta POST contenente i suoi dettagli.
L' App di Amministrazione di Back4App fornisce un'interfaccia user-friendly per i membri non tecnici del tuo team. È un' interfaccia centrata sul modello per operazioni CRUD e compiti a livello aziendale.
- Vai al tuo Dashboard dell'App.
- Seleziona Altro > App Admin e abilitalo.
- Crea un utente admin e scegli un sottodominio per ospitare il pannello.
![Abilita l'App Admin Abilita l'App Admin](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/_2b71RLDTlQW468017saY_image.png?format=webp)
Una volta abilitato, puoi accedere con le tue credenziali admin per gestire i dati in modo più conveniente—senza scrivere endpoint o query personalizzati nel tuo codice Python.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
Seguendo questo tutorial completo, hai:
- Creato un backend sicuro per un'app Flask su Back4App.
- Configurato un database con schemi di classe, tipi di dati e relazioni.
- Integrato query in tempo reale (Live Queries) per aggiornamenti immediati dei dati.
- Applicato misure di sicurezza utilizzando ACL e CLP per proteggere e gestire l'accesso ai dati.
- Implementato funzioni di Cloud Code per eseguire logica aziendale personalizzata sul lato server.
- Impostato l'autenticazione degli utenti con supporto per la verifica dell'email e il ripristino della password.
- Gestito caricamenti di file e recupero, con controlli di sicurezza dei file opzionali.
- Pianificato Cloud Jobs per attività di background automatizzate.
- Utilizzato Webhook per integrarsi con servizi esterni.
- Esplorato il Pannello di Amministrazione di Back4App per la gestione dei dati.
Con un solido framework backend Flask che può restituire file di template renderizzati (se desiderato) e una robusta configurazione di Back4App, sei ora attrezzato per sviluppare applicazioni ricche di funzionalità, scalabili e sicure.
Puoi eseguire il tuo comando flask run per avviare il server di sviluppo e continuare a programmare.
La riga di comando i compiti diventano semplici con metodi post def percorsi che accettano payload JSON.
- Costruisci un'app Flask pronta per la produzione estendendo questo backend per gestire modelli di dati più complessi, strategie di caching e ottimizzazioni delle prestazioni.
- Integra funzionalità avanzate come flussi di autenticazione specializzati, controllo degli accessi basato sui ruoli o API esterne (come i gateway di pagamento).
- Controlla la documentazione ufficiale di Back4app per approfondimenti su sicurezza avanzata, ottimizzazione delle prestazioni e analisi dei log.
- Esplora altri tutorial su applicazioni di chat in tempo reale, dashboard IoT o servizi basati sulla posizione. Puoi combinare le tecniche apprese qui con API di terze parti per creare applicazioni complesse e reali.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)