Per farla breve, supponiamo di voler creare una pagina web che consenta agli utenti di vendere auto usate.
Sono un principiante di webdev, quindi perdona la mia ignoranza. Fatto divertente: due mesi fa non sapevo letteralmente nulla, consideravo l'HTML come una reliquia degli anni '90, non più in uso LOL.
- Mi è stato detto che ho bisogno di qualcosa per il BACKEND e per il FRONTEND
- Dato che conosco molto bene python, sono andato per django per il back-end
- Come sapevo letteralmente nulla sul frontend, suggerì il mio amico me AngularJS
Ho qualche dubbio se sto andando nella giusta direzione.
Django è un framework back-end, ma durante i tutorial ho avuto la sensazione che la parte Templates del pattern MVT fosse praticamente il frontend, strongmente dipendente dai Models e Views. Ho passato ore di googling per vari termini e ho trovato questo post su reddit / django - best practice django :
Treat the front end like a separate application. Keep it outside the Django project directory.
Quindi con questo approccio (solo per essere sicuro di averti compreso), non stai usando i modelli, giusto? "
Hai ragione. Non usare affatto i modelli.
Come faccio? Voglio dire, i template usano tutti quei template-tag, come posso sostituire i template di django con il codice angolare? Mi sento come se dovessi usare qualche API REST (come? Struttura REST di django?) Per comunicare il frontend con Backend. Scrivi solo i modelli e le viste e connettiti ad esse utilizzando alcune richieste POST e GET. Come
FrontEnd < --- > API REST < --- > Modelli e viste di Django < --- > Database
Quindi il frontend utilizza la propria logica e invia richieste come
- OTTENUTO Mi dia tutte le macchine che un utente ha pubblicato
- Ottieni i dettagli dell'utente
- POST crea un nuovo utente
- POST una modifica a una macchina
- OTTIENE la query per tutte le auto rosse
ecc.
Quindi, un'altra domanda sul frontend. Sono caduto l'Angolare non è una buona scelta. Lo scopo è scrivere App per singola pagina, che chiaramente non sarà. Posso immaginare un utente, interrogando per determinati criteri di macchine e poi aprendo tutte le offerte in schede separate. È possibile utilizzare Angular per il mio caso? Sono perso qui: (
Se decido di attenermi ai Django Teplates, come posso usare AJAX lì? E c'è un modo per creare un ibrido tra app a pagina singola e app multipagina - per seguire in genere più modelli, ma mantenere parti di essi simili a SPA? Per esempio. Un modello principale utilizzato per l'interrogazione delle macchine da esplorare, che non attiverebbe il ricaricamento della pagina, invierebbe invece una richiesta asincrona, visualizza la casella di selezione e quindi visualizza l'elenco delle auto disponibili. Dopo aver fatto clic su una macchina particolare, si apriva una nuova scheda con i dettagli su quella macchina (modello Dettagli).
Apprezzerei molto qualsiasi aiuto su questa separazione frontend / backend.