Progettazione dell'applicazione Web utilizzando due diversi framework

4

Sono relativamente nuovo allo sviluppo web e volevo capire cosa significa quando qualcuno dice "hanno usato django per backend e framework javascript per front-end."

per favore correggimi se sbaglio; la mia comprensione è che stanno facendo tutto il loro codice lato server che si occupa di database e scrittura di complesse logiche di business, scrivendo api usando il framework python django e poi stanno usando MVC come AngularJS e usando javascript per fare chiamate API ai server? (API esposte da python)

Anch'io ho ragione nella mia ipotesi; volevo sapere

1) perché qualcuno dovrebbe usare due diversi quadri? Voglio dire, Django può fare sia frontend che backend. Quali sono i vantaggi e gli svantaggi. ci sono dei limiti?

2) significa questo; tutte le comunicazioni tra i due framework dipendono dalle chiamate API / RPC?

P.S; questo è quello che ho letto ma ho letto lo stesso in molti altri posti

/*"Our client side app is built on a fairly sophisticated JavaScript framework and makes use of jQuery, React, Flux and all the usual suspects. The server-side is written in Python on Django, with a MySQL database. We use Node.js and SockJS for our real-time components. Our systems all run on Amazon Web Services.

You will be will be working a variety of projects relating to our flagship web application. These will include front-end MVC application design and development, DOM optimization, and modular and extensible HTML/CSS . In terms of back-end development, you will be working on our Django application and creating lightning-fast REST APIs."*/

    
posta Hassan Ahmed 27.02.2017 - 22:05
fonte

1 risposta

3

'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.

    
risposta data 28.02.2017 - 00:28
fonte

Leggi altre domande sui tag