'Framework' è un termine generico.
Django è un framework di sviluppo web costruito su Python. Fornisce strumenti comunemente necessari per la creazione di un sito Web: strumenti come la connessione a un livello di database, l'esecuzione di un server di sviluppo, il rendering di viste e le richieste di instradamento al controller corretto sono tutti forniti dal framework.
Rails è un framework simile, appena creato su Ruby. In teoria è possibile creare un'app Web solo in Python o semplicemente Ruby senza il framework, ma sarebbe un problema ricostruire tutti questi strumenti da zero.
Angular è un framework di front-end per la creazione di viste HTML interattive da strutture di dati standardizzate - dai un'occhiata alla sezione sulla loro home page su "cablaggio il back-end '. Angular non ha un modo per "salvare" i dati oltre gli strumenti Javascript di base come il salvataggio su cookie o la memorizzazione locale; ha bisogno di un sistema di backend per questo. Utilizza alcune delle stesse lingue per descrivere l'organizzazione del codice (come "MVC") ma non fornisce gli stessi strumenti.
I framework front-end non fanno le stesse cose dei framework back-end, anzi, a volte un framework front-end non fa le stesse cose di un framework front-end diverso.
Gli sviluppatori Web utilizzano framework "front-end" e "back-end" per gestire due diversi tipi di interazione con l'utente.
django can do both frontend as well as backend.
A meno che io non fraintenda drammaticamente le abilità di Django, non può creare interazioni in-page dinamiche come pop-up modali, editing dal vivo, ecc. Può renderizzare l'HTML, sì; ma non può far sì che qualsiasi testo digitato nella casella di testo compaia anche sulla pagina simultaneamente.
Strutture di back-end come Django, Rails o Symphony sono utilizzate per gestire richieste di browser iden- totenti e chiamate HTTP. Carichi una pagina, la struttura ispeziona l'url che hai richiesto e crea l'interezza della pagina, pezzo per pezzo, e restituisce il tutto al browser. (Anche le API)
Ci sono alcune eccezioni a questo, ma in generale quando si "naviga" su Internet, i sistemi "back-end" gestiscono tali richieste. Quando vedi l'URL cambiare e l'intera finestra del browser è bianca per un momento, questo è il tipo di navigazione.
I framework "front-end" sono più importanti per la gestione delle interazioni utente in-page. Cose come pop-up modali, caricamento di più dati tramite AJAX senza caricare una nuova pagina, invio di un modulo e visualizzazione di un messaggio senza reindirizzamento, effetti di passaggio del mouse.
Il framework front-end più semplice che puoi usare è solo HTML e CSS. Se hai bisogno di interazioni più complesse, puoi aggiungere Javascript a quegli strumenti. Se il tuo javascript è complicato o stai ricreando schemi comuni, potresti aggiungere jQuery per i suoi strumenti di animazione.
Se ti ritrovi a reimplementare un'intera applicazione (sostituendo l'intero contenuto della pagina quando fai clic su determinati link o esegui determinate azioni - una "App per pagina singola"), puoi utilizzare una struttura Javascript come Angular per creare quelle interazioni.
Raramente vedrai un'applicazione web solo front-end. Quasi tutti i siti Web o le applicazioni richiedono una sorta di memorizzazione permanente dei dati: accessi, contenuto di pagine, commenti, dati di prodotto, contenuti inviati dall'utente, qualsiasi cosa. Il framework di backend funge quindi da livello di comunicazione tra il database e il disco e il front-end. Potrebbe fare appena un semplice API REST per accedere / creare / modificare dati mentre il Javascript gestisce tutti i template e HTML, o potrebbe costruire partials HTML, e il front-end di Javascript li assemblerà insieme, o potrebbe assemblare il intera pagina, e Javascript è usato solo per le animazioni e le richieste Ajax occasionali.