Si aneu al lloc web djangoproject.com utilitzant el vostre navegador -- o, depenent de la dècada en la que esteu llegint aquest text literari destinat-a-ser-intemporal, utilitzant el vostre telèfon mòbil, agenda electrònica, o qualsevol altres giny per accedir a Internet -- trobaràs aquesta explicació:
"Django és un marc-de-treball web d'alt nivell de python que encoratja un desenvolupament de disseny pragmàtic ràpid i clar.
Això és una queixalada -- o un cop d'ull, depenent de si aquest llibre està recitat, llegit en paper o projectat en el teu Jumbotron.
Deslloriguem-ho a continuació.
Un marc-de-treball web d'alt nivell és un programari que facilita la dificultat de construir llocs web dinàmics. Aquest abstreu problemes comuns del desenvolupament web i proporciona dreceres per a les tasques més freqüents de programació.
Fer caritat, un lloc web dinàmic és aquell en que les pàgines no són només documents HTML situats en un qualsevol sistema de fitxers d'un servidor. En un lloc web dinàmic, que, cada pàgina és generada per un programa d'ordinador -- anomenada "aplicació web" -- que tu, el desenvolupador web, has creat. Una aplicació web pot, per exemple, retornar registres des d'una base de dades o fer una acció basada en les entrades d'un usuari.
Un bon marc-de-treball web tracta aquestes preocupacions comuns:
Django fa totes aquestes coses bé -- i introdueix un nombre de característiques que aixequen el nivell del que un marc-de-treball web hauria de fer.
El marc-de-treball està escrit en Python, un llenguatge de programació d'alt nivell, maco, concís, potent. Per desenvolupar un lloc utilitzant Django, has d'escriure codi Python que utilitza les llibreries de Django. Encara que aquest llibre no inclou un tutorias complet de Python, mostra les característiques i funcionalitats de Python quan sigui necessari, particularment quan el codi no té un sentit evident.
Sense tenir en compte quantes característiques potents té, un marc-de-treball web no té valor si no t'estalvia temps. La filosofia de django és fer tot lo possible per facilitar-te el desenvolupamet hiper-ràpid. Amb Django, fas llocs web en poques hores, no dies; setmanes o anys.
És possible que s'hagi d'agrair-ho al propi Python. Oh, Python, com ens agradades, mireu-ho en aquests punts:
Més enllà dels avantatges de la productivitat inherents de Python, el propi Django fa l'esforç per a un desenvolupament ràpid. Cada part del marc-de-treball està dissenyat amb la productivitat en ment. En veurem exemples durant aquest llibre.
Finalment, Django estrictament manté un disseny net en el seu codi i fa que sigui fàcil de seguir en les aplicacions que creis.
Això significa que si penses que Django és un cotxe, podria ser un cotxe d'esports elegant, capaç no només d'altes velocitats i gir tancats, sinó amb molt kilometratge i amb emissions netes.
La filosofia aquí és: Django fa que sigui fàcil fer coses de manera "correcta".
Específicament, Django encoratja en l'acoblament dèbil: la filosofia de programació és que diferents peces de l'aplicació haurien de ser intercanviables i haurien de comunicar-se amb les altres via APIs netes i concises.
Per exemple, el sistema de plantilles o sap res sobre el sistema d'accés a la base de dades, el qual no sap res sobre la capa de petició/resposta HTTP, el qual no sap res sobre la memòria cau. Cadascuna d'aquestes capes són diferents i lleugerament acoblades a la resta. En la pràctica, això vol dir que pots intercanviar i ficar capes quan ho necessites.
Django segueix l'arquitectura "model-vista-controlador" (MVC). Simplement, és la forma de desenvolupar programari en que el codi per definir i accedir a les dades (el model) està separat de la lògica d'empresa (el controlador), que alhora està separada de la interfície d'usuari (la vista)
MVC s'explica millor amb un exemple del que no s'ha de fer. Per exemple, mira el següent codi PHP, que retorna una llista de gent d'una base de dades MySQL i la treu en una pàgina HTML simple. (Si, podríem haver-ho fet com a programadors disciplinats i escriure codi PHP clar; però només utilitzem PHP per il·lustrar aquest punt):
<html>
<head><title>Els meus amics</title></head>
<body>
<h1>Els meus amics</h1>
<ul>
<?php
$connection = @mysql_connect("localhost", "my_username", "my_pass");
mysql_select_db("my_database");
$people = mysql_query("SELECT name, age FROM friends");
while ( $person = mysql_fetch_array($people, MYSQL_ASSOC) ) {
?>
<li>
<?php echo $person['name'] ?> is <?php echo $person['age'] ?> years old.
</li>
<?php } ?>
</ul>
</body>
</html>
Encara que aquest codi és conceptualment simple per a novell -- perquè tot està en un únic fitxer -- és una mala pràctica per diverses raons:
Per descomptat, volem que aquest llibre sigui just i equilibrat. Amb això en ment, hem de ser honestos i escriure que no fa Django:
Posant-nos més seriosos, Django encara no inverteix els efectes de l'escalfament global.
Django està profundament arrelat als problemes i solucions del Món Real. No s'ha creat per comerciar-lo i vendre'l als desenvolupadors, no s'ha creat com un exercici acadèmic en algun temps perdut. S'ha construït des del Primer Dia per solucionar els problemes diaris per un equip de desenvolupament web de la industria lider.
Va començar a finals del 2003, en un petit diari d'un petit poble a Lawrence, Kansas.
Per una raó o altra, el diari The Lawrence Journal-World dirigit per atreure un grup de talentosos dissenyadors i desenvolupadors web a principis del 2000s. Les operacions web del diari, En Línia a tot el Món, ràpidament va ser uns dels diaris web més innovadors del Món. Aquests tres llocs principasl, LJWorld.com (notícies), Lawrence.com (entreteniment/música) i KUsports.com (esports acadèmics), van començar a guanyar premis en la indústria de premsa digital. Les innovacions van ser moltes, incloent-hi:
Els experts en periodisme de tot el Món han assenyalat que el futur són els diaris digitals. Els negocis del New York Times ha fet història amb els seus mitjans: La radio pública nacional va fer una sèrie que va durar dos dies. El redactor principal, Rob Curley, parla quasi setmanalment en conferències arreu del Món, de les idees innovadores dels llocs web en línia i de les seves característiques. És trist que la vella indústria es resisteixi al canvi, World Online ha estat una excepció.
Molts dels èxits de World Online ha estat motivat per la tecnologia que hi ha darrera els seus llocs, i en la filosofia que els informàtics són tant importants per crear el periodisme del segle XXI que els propis periodistes.
Aquí hi ha el perquè s'ha desenvolupat Django: Els desenvolupadors de World Online necessitaven un marc-de-treball per desenvolupar complexos llocs webs basats en bases de dades, fàcilment i en temps periodístics.
A finals del 2003, dos desenvolupadors de World Online, Adrian Holovaty i Simon Willison, van decidir fer aquest marc-de-treball. Els van decidir utilitzar Python, un llenguatge que ells s'acabaven d'enamorar. Després d'explorar (i tenir decepcions) de les llibreries de programació Web amb Python, ells començaren a crear Django.
Dos anys més tard, a l'estiu del 2005, després d'haver desenvolupat Django fins a un punt on funcionés eficientment en la majoria de llocs web de World Online, l'equip de World Online, que ara incloïa a Jacob Kaplan-Moss, va decidir la bona idea d'obrir el codi del marc-de-treball. D'aquesta forma, ells van tornar a la comunitat de codi obert, van obtenir aportacions gratuïtes de desenvolupadors externs, i van oferir serveis empresarials per al sistema Django. Django fou codi obert el juliol del 2005 i es va fer popular ràpidament.
Encara que Django ara és un projecte de codi obert amb gent que hi contribueix arreu del planeta, els desenvolupadors originals de World Online encara proporcionen la direcció principal per l'ampliació del marc, i World Online hi contribueix en altres aspectes importants com ample de banda, material i temps de dedicació (http://www.djangoproject.com).
Els desenvolupadors web arreu del Món que utilitzen Django. Als exemples específics:
Un llistat de dotzenes de nous llocs que utilitzen Django podeu trobar-los a http://code.djangoproject.com/wiki/DjangoPoweredSites.
La finalitat d'aquest llibre és explicar totes les coses que fa Django -- i fer-te un expert utilitzant-lo.
Llegint aquest llibre, aprendràs les habilitats necessàries per desenvolupar potents llocs web ràpidament, amb un codi clar i fàcil de mantenir.
Estem contents que continuïs aquí.