Si esatto, un framework è una specie di libreria molto ampia. E' però meglio vederlo come un ambiente di lavoro: letteralmente sarebbe una 'cornice di lavoro', immaginandola come un a cornice di un quadro all'interno del quale puoi realizzare la tua opera.
In una framework sono già presenti molti strumenti che si appoggiano a librerie incluse che ti permettono di implementare funzionalità in modo molto più veloce, organizzato, efficace e sicuro. Puoi inoltre implementare ulteriori librerie.
Faccio un esempio grossolano per capire il concetto.
Immagina che tu debba realizzare un form di login. Devi prevedere il codice che serve a realizzare il form, fare le verifiche di congruità e di sicurezza dei dati inseriti lato client e lato server per evitare che vengano inseriti dati (nome utente o email e password di solito) scorretti ad esempio con caratteri non autorizzati (o email scritte male, ad esempio senza la @) o, peggio, pericolosi per la sicurezza del sito. Poi devi prevedere il collegamento con il database per confrontare le credenziali inserite nel form con quelle memorizzate in esse e gestire il caso di successo, con l'accesso alla pagina o alla funzionalità desiderata, ma anche quello di insuccesso con messaggi di errore rivolti all'utente. Ma devi prevedere anche tutta la struttura di recupero della password o di reset della stessa nel caso sia stata dimenticata, con la realizzazione di tutte le strutture necessarie. Ancora potresti aver bisogno di aggiornare un file di log che tenga traccia dei login effettuati o un sistema di logout. Quasi sicuramente avrai necessità anche di creare una sessione in modo che l'utente possa procedere alla navigazione senza dover effettuare il login ad ogni pagina. E potresti aver necessità di altre funzionalità ancora. Tutto solo a partire da un semplice form di login.
Il framework ti mette a disposizione delle strutture già organizzate che se da un lato introducono un certo livello di rigidità (si fa così e basta :D se vuoi modificare alcuni aspetti devi sbatterti non poco) ma ti abbrevia moltissimo il lavoro. Inoltre è molto più sicuro perché realizzato e testato già in maniera molto efficace quindi non devi preoccuparti più tanto che il codice sia solido.
Quello del form di login è solo un esempio, tra i più semplici. Nella realizzazione di un'applicazione ci sono molti aspetti da gestire ma che son un po' più complessi da capire per chi è alle prime armi, come ad esempio il routing (come si viene indirizzati in modo sicuro alle varie pagine/funzionalità dell'app e si evita che si finisca "fuori strada"?). Tieni presente che quelle che sembrano pagine web in realtà nelle applicazioni di una certa complessità in realtà non lo sono, ma vengono "assemblate al volo" prendendo codice "sparpagliato" quà e là :D
Usando i framework con competenza quando sviluppi un'applicazione (per un sito semplice non ha senso usarli) puoi quindi concentrarti meglio sulla logica di implementazione e funzionamento strutturale dell'applicazione e non starti a sbattere per inserire le mille funzionalità del form di login. :)
Sono stato lungo ma spero di aver chiarito, perché so benissimo, essendoci passato, che non è immediato capire cosa sia un framework finché non ci si mette le mani sopra.
RE: [ENG/ITA] Python & Hive: My Scripts are Ready! My First Project is Completed :)