SlideShare a Scribd company logo
Enviar búsqueda
Cargar
Iniciar sesión
Registrarse
Chapter1
Denunciar
Brahim Bensbaa
Seguir
graphiste en auto
12 de Sep de 2012
•
0 recomendaciones
•
429 vistas
Chapter1
12 de Sep de 2012
•
0 recomendaciones
•
429 vistas
Brahim Bensbaa
Seguir
graphiste en auto
Denunciar
Chapter1
1 de 6
Descargar ahora
1
de
6
Recomendados
Cours javascript
krymo
7K vistas
•
71 diapositivas
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Marouan OMEZZINE
3K vistas
•
48 diapositivas
EcmaScript
Dagbouj Hatem
346 vistas
•
18 diapositivas
Vbnet
Ennakhli Said
1.4K vistas
•
289 diapositivas
Chapitre 4 Java script
Manel Ben Sassi
408 vistas
•
122 diapositivas
Advanced html5
Arrow Group
1.4K vistas
•
81 diapositivas
Más contenido relacionado
Destacado
Lunes
valepereiras
390 vistas
•
25 diapositivas
Possible Lair - Capri Restaurant
guest371330d
361 vistas
•
7 diapositivas
Taee2004:Electrónica de Potencia: Reflexiones sobre la docencia y herramienta...
JUAN AGUILAR
542 vistas
•
12 diapositivas
Donnez de l’envergure à vos analyses – Performance et précision au-delà de 45...
AT Internet
1K vistas
•
37 diapositivas
Talleres Vivenciales de Me Haces la Taba Dic13
Luis Palomino
748 vistas
•
4 diapositivas
Paris : projet de Damineh et Alba, de 6e
BarretMonteOroel
364 vistas
•
25 diapositivas
Destacado
(20)
Lunes
valepereiras
•
390 vistas
Possible Lair - Capri Restaurant
guest371330d
•
361 vistas
Taee2004:Electrónica de Potencia: Reflexiones sobre la docencia y herramienta...
JUAN AGUILAR
•
542 vistas
Donnez de l’envergure à vos analyses – Performance et précision au-delà de 45...
AT Internet
•
1K vistas
Talleres Vivenciales de Me Haces la Taba Dic13
Luis Palomino
•
748 vistas
Paris : projet de Damineh et Alba, de 6e
BarretMonteOroel
•
364 vistas
Compu training sa
Camille Marcillac
•
337 vistas
La Comunicacion
Sharon Aliaga
•
232 vistas
Elodie Mielczareck
Elodie Mielczareck
•
931 vistas
Tob25 12pps
educarconjesus
•
1.6K vistas
Actitud
IRMA CHAVEZ
•
317 vistas
¿Cómo son las revistas científicas españolas en WoS y Scopus?
Ernest Abadal
•
1.2K vistas
Weekly actions du 12 au 16 avril 2010
Cherradi -
•
405 vistas
3 étapes pour débuter votre collaboration avec votre assistant virtuel
Smartelia
•
245 vistas
PUBLICIDAD.Ppt
diezmarzo
•
325 vistas
L’innovation forum cmit 3 juin 2014
Yann GLEVER
•
1K vistas
La PresentacióN De La Virgen MaríA
Hijo de Maria
•
1.9K vistas
Carnet De Bord PôLe Technique
guest0ed19c
•
442 vistas
Arman
zarates
•
266 vistas
Libro+Mujeres+Y+Tercer+Sector
guestfc2c7
•
1.3K vistas
Similar a Chapter1
ASP.NET MVC, Web API & KnockoutJS
Renaud Dumont
5.7K vistas
•
51 diapositivas
les servlets-java EE
Yassine Badri
1.1K vistas
•
45 diapositivas
Présentation de Django @ Orange Labs (FR)
Martin Latrille
1.6K vistas
•
25 diapositivas
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
ENSIBS
3K vistas
•
15 diapositivas
Design patterns
CocoaHeads.fr
850 vistas
•
13 diapositivas
Design patterns
CocoaHeads.fr
788 vistas
•
13 diapositivas
Similar a Chapter1
(20)
ASP.NET MVC, Web API & KnockoutJS
Renaud Dumont
•
5.7K vistas
les servlets-java EE
Yassine Badri
•
1.1K vistas
Présentation de Django @ Orange Labs (FR)
Martin Latrille
•
1.6K vistas
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
ENSIBS
•
3K vistas
Design patterns
CocoaHeads.fr
•
850 vistas
Design patterns
CocoaHeads.fr
•
788 vistas
Tutoriel java
Kalilou DIABY
•
802 vistas
BreizhCamp - Drupal7 dans le cloud avec Azure
Nicolas Georgeault
•
1.9K vistas
Presentation forum php 2010
Laurent Destailleur
•
6.1K vistas
Asp.net Présentation de L'application "Organizer"
Nazih Heni
•
2.7K vistas
20081113 - Nantes Jug - Apache Maven
Arnaud Héritier
•
1.2K vistas
Formation PHP avancé - Cake PHP
kemenaran
•
14.7K vistas
Google Web Toolkit 1.5 Presentation Web Creative Common
Stéphane Liétard
•
8.1K vistas
Javascript as a first programming language : votre IC prête pour la révolution !
VISEO
•
1.5K vistas
Do you speak technique ?
JEAN-GUILLAUME DUJARDIN
•
531 vistas
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
Atsé François-Xavier KOBON
•
246 vistas
Drupal7 - Bonnes Pratiques (Partie 1)
Alexandre Marie
•
1.9K vistas
Environnement et technologies web
IrinaTsimpilova1
•
576 vistas
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi Mbuta
Daniella Mbuta
•
250 vistas
Etude des Frameworks PHP
JEAN-GUILLAUME DUJARDIN
•
1.6K vistas
Chapter1
1.
Chapitre 1: Introduction
à Django ================================= Si vous visitez le site Web djangoproject.com en utilisant votre navigateur Web   ou, en fonction de la décennie pendant laquelle vous lisez ce travail destiné à être intemporel, en utilisant votre natel, votre agenda éléctronique, votre chaussure, ou n'importe quelle machine dévouée (superceding) à Internet   vous trouverez cette explication: Django est un framework Web Python de haut niveau qui encourage le développement rapide et une conception propre et pragmatique. Cette citation est une douce musique   ou un régal pour les yeux, selon qu'on vous récite ce livre, que vous le lisiez sur papier ou sur un écran géant. Je vous invite à décomposer ce framework. Django est un framework Web de haut niveau ------------------------------------------- Un framework de haut niveau est un logiciel qui réduit la souffrance ressentie lors de la construction de sites Web dynamiques. Il abstrait les problèmes courants du dévelopemment Web et fourni des raccourcis pour les tâches de programmation fréquentes. Pour plus de clarté, un site Web dynamique est un site dont les pages ne sont pas simplement des documents HTML déposés sur un serveur de fichier quelconque. Dans un site dynamique, chaque page est générée par un logiciel informatique   que l'on appelle aussi une application Web   que vous créez vous, le développeur. Une application peut, par exemple, récupérer des informations d'une base de données ou gérer les actions basées sur des entrées utilisateur. Un bon framework Web aborde ces différents problèmes: * Il fournit une méthode pour connecter les URLs demandées au code qui gère les requêtes. En d'autres termes, il vous donne un moyen de choisir quel code est exécuté par telle URL. Pour l'exemple, vous pourriez dire au framework « Pour les URL qui ressemblent à /users/joe/, exécute le code qui affiche le profil de l'utilisateur qui a ce nom ». * Il rend facile l'affichage, la validation, et le ré-affichage des formulaires HTML. Les formulaires HTML sont la manière basique de récolter les entrées des utilisateurs du Web. Un framework Web doit rendre leur affichage facile et simplifier la gestion fastidieuse du code d'affichage et de ré-affichage (avec les erreurs mises en évidence). * Il convertit les données de l'utilisateur dans des structures qui peuvent être manipulées facilement. Par exemple le framework doit convertir les formulaires HTML dans des types de données natives au langage de programmation utilisé. * Il aide à séparer le contenu de la présentation via un système de
2.
gabarits
(templates), pour que vous puissiez changer l'apparence de votre site sans affecter son contenu et vice-versa. * Il s'intègre naturellement avec une couche de stockage   comme les base de données   mais ne nécessite pas forcement une base de données. * Il vous permet d'être plus productif, à un plus haut niveau d'abstraction, que si vous deviez travailler directement avec HTTP. Mais il ne vous empêche pas de pouvoir accèder à ces niveaux plus bas si nécessaire. * Il reste en dehors de votre chemin, ne vous obligeant pas à laisser les URL de application se terminer par « .aspx » ou « .php ». Django fait correctement toutes ces choses   et introduit une quantité de fonctionnalités qui surpasse ce qu'un framework Web doit faire. Le framework est écrit en Python, un magnifique langage de programmation, concis, puissant et de haut niveau. Pour développper un site utilisant Django, vous écrivez du code Python qui utilise les bibliothèques Django. Bien que ce livre n'inclut pas un tutoriel Python complet, il met en lumière les particularités et fonctionnalités de Python, aux endroits appropriés, particulièrement quand le code n'est pas auto explicatif. ...qui encourage le développement rapide... ------------------------------------------- En dépit des nombreuses fonctionnalités qu'il propose, un framework Web est sans valeur si il ne vous permet pas de gagner du temps. La philosophie de Django est de faire tout ce qui peut faciliter un dévelopmment hyper rapide. Avec Django, vous contruisez des sites Web en quelques heures, pas des jours; des semaines ou des années. Ceci est possible en grande partie grâce à Python lui même. Oh, python, comme nous l'aimons, laisse nous faire cette liste: * Python est un langage interprété, ce qui signifie qui n'y a pas de compilation de code: Il suffit d'écrire votre programme et de l'exécuter. En dévelopmment Web cela signifie que vous pouvez développer votre code et constater immédiatement les résultats en appuyant  Recharger  dans votre navigateur. * Python est typé dynamiquement, ce qui sgnifie que vous n'avez pas à vous soucier de déclarer le type de donnée de vos variables. * Pyton a une syntaxe concise et expressive, ce qui signifie que cela prend moins code pour accomplire la même tâche que dans un langage plus verbeux comme Java. Une ligne de python équivalent souvent à 10 lignes de Java. (Qui dit moins de lignes dit aussi moins de bogues.) * Python offre des fonctionnalités puissante comme l'introspection et la meta- programmation, qui rendent possible d'inspecter et d'ajouter des comportements aux objets durant la phase d'exécution. Derrière les avantages en productivités inhérentes à Python, Django fait tous les efforts pour encourager un développement rapide. Chaque partie du framework a été conçu avec comme but la productivité. Nous allons voir des exemples de cela partout dans ce livre. …et une conception propre et pragmatique ----------------------------------------
3.
Finalement, Django maintient
volontairement un design propre partout dans son propre code et encourage l'application des meilleurs pratiques de développement Web dans les applications que vous créez. Cela signifie que si Django était une voiture, il serait une élégante voiture de sport, capable non seulement d'atteindre des vitesses élevées et de tourner sec, mais aussi d'aller loin en ayant des émissions propres. La philosophie est la suivante: avec Django il est facile de faire les choses de la  bonne  manière. Spécificement, Django encourage le faible couplage: les différentes pièces de l'application doivent être interchangeables et soivent communiquer entre elles via des API claires et concises. Par exemple, le système de template ne sait rien du système de base de données, qui ne connait rien de la couche requète/réponse, qui ne sais rien du cache. Chacune de ces couches est séparée et faiblement couplée à l'ensemble. En pratique cela signifie que vous pouvez mélanger et choisir les couches si besoin est. Django suit l'architecture "Modèle-Vue-Contrôleur" (MVC). En bref, il s'agit d'une manière de développper du logiciel afin que le code définissant et accédant aux données (le Modèle) soit séparé de la logique métier (le Contrôleur), qui est à son tour séparé de l'interface utilisateur (la Vue). MVC est mieux expliqué par un exemple de ce qu'il ne faut pas faire. Regardez le code PHP suivant: il va chercher une liste de personnes depuis une base de données MySQL et affiche cette liste dans une page HTML simple. (Oui, nous savons que les progammeurs disciplinés peuvent écrire du code PHP propre; nous utilisons juste PHP pour illustrer notre argumentation.):: <html> <head><title>Friends of mine</title></head> <body> <h1>Friends of mine</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> Bien que ce code soit conceptuellement simple pour les novices   car tout est contenu dans un seul fichier   c'est une mauvaise pratique pour plusieurs raisons: * La présentation est lié au code. Si un graphiste désire modifier cette page HTML, il ou elle devra modifier ce code, car HTML et PHP sont entrelacé. Par contraste, l'approche MVC de Django encourage la séparation du code et de la
4.
présentation. Ainsi la
présentation est gouvernée par des gabarits (Templates) et la logique métier vit dans des modules Python. Les programmeurs travail avec du code, et les designers avec HTML. * Le code de la base de données est lié avec la logique métier. C'est un problème de redondance: Si vous renommer votre base de données ou ses colonnes, vous devrez réécrire votre SQL. * Par contraste, l'approche MVC de Django encourage une seule couche abstraite d'accès aux données qui est responsable de tout accès aux données. Dans le cas de Django, la couche d'accès aux données connais le nom vos tables et de vos colonnes et vous laisse ainsi exécuter les requètes SQL via Python au lieu d'écrire du SQL manuellement. Cela signifie que si les noms de vos tables changent, vos devrez les changer dans un seul endroit   dans la définition de votre modèle   au lieu de le faire à travers tout votre code pour chaque instruction SQL. * L'URL est couplé au code. Si ce fichier PHP existe comme /foo/index.php, il sera exécuté pour chaque requète à cette adresse. Mais si ce que vous voulez que ce code soit exécuté pour les requètes /bar/ et /baz/? Vous devrez mettre en place des inclusions ou des règles de ré-écriture, qui deviendront rapidemment ingérables. Par contrate, Django découple les URLs du code de réponse afin que vous puissiez changer les URL pour un morceau de code donné. * Les paramètres de connexion à la base de donnés sont codés en dur. C'est malpropre de spécifier des informations de connexion   le serveur, le nom d'utilisateur et le mot de passe   dans le code car il s'agit de configuration et non de logique de programmation. En outre, cet exemple code en dur le fait que la base de données utilisée est MySQL. Par contraste, Django a une place unique pour stocker la configuration. La couche d'accès aux données est abstraite de tel manière qu'il soit facile de changer de serveur de base de données (par exemple: de MySQL à PostgreSQL). Ce que Django ne fait pas ------------------------- Bien sûr, nous voulons que ce livre soit juste et équilibré. Aillant ceci en tête, nous devrions être honnête sur ce que Django ne fait pas: * Nourrir votre chat * Lire les besoins de votre projet dans votre esprit et les implanter d'une façon soigeusement planifiée afin de faire croire à votre patron que vous n'êtes pas chez vous en train de regarder "Le Juste Prix". * Un peu plus sérieusement, Django n'inverse pas l'effet du réchauffement global. Dans quel but Django a-t-il été développé Django est profondémment enraciné dans les problèmes et les solutions du monde réel. Il ne pas fut créé pour être commercialisé et vendu aux développeurs. Il ne fut pas non plus créé comme un exercice académique élaboré durant le temps libre d'un hobbiste. Il fut construit dès le premier jour pour résoudre les problèmes courants d'une équipe de développement Web professionel. Il commença fin 2003, pour le journal d'une petite ville du Kansas: Lawrence. Pour une raison ou pour une autre, Le journal "The Lawrence Journal-World" est parvenu à attirer une poignée de talentueux designers et développeurs Web au début des années 2000. Le groupe de travail Web du journal, World Online, devint rapidemment l'un des plus innovant groupe de travail journalistique Web
5.
dans le monde.
Ces trois principaux sites, LJWorld.com (nouvelles), Lawrence.com (divertisement/musique), et KUsports.com (sports junior), commencèrent à gagner récompense après récompense dans l'industrie du journalisme. Ces innovations furent nombreuses, par exemple: * Le site de divertissement le plus localement impliqué à travers le monde, Lawrence.com, qui mélange les données et les évènements locaux, les groupes, les restaurants, les "drink" speciaux, des chansons téléchargeables et des nouvelles au format standard (traditional-format). * Une section de LJWorld.com qui a traité les petis joueurs locaux comme si il étaient les "New York Yankees"   leur fournissant à chacun une page personnel liée aux données météorologiques pour afficher des prévisions des jeux, fournissant un panorama à 360° pour chaque terrain de jeu à proximité et alertant les parents via SMS quand les jeux sont annulés. * Des alertes SMS pour les match de basketball et de football de l'université du Kansas, qui permet aux fans de modifier les scores et les statistiques durant le jeu, et un second système qui utilise des algorithme d'intelligence artificielle pour laisser les fans envoyer des textes complet au système de base de donnés ("Combien de points giddens a ?" ou "points gidden") * Une base de données détaillée des statistiques de tous les matches de football et de basketball du collègue dont vous auriez besoin, inculant un moyen de comparer deux/plusieurs joueurs ou équipes dans le NCAA (National Collegiate Athletic Association). * Fournir des blogs aux membres de la communauté en mettant en évidence le travail d'écriture de cette communautée   les blogs étaient tendance à l'époque. Les experts en journalisme à travers le monde designèrent World Online comme un exemple du journalisme du futur. Le New York Times publia une histoire de l'entreprise à la première page de la section business; la radio publique nationale fit une série de deux jours à ce sujet. Rob Curley, Le rédacteur en chef de World Online, parla presque toutes les semaines dans des conférences journalistique à travers le monde, présentant les idées innovantes de World Online et les fonctionnalités du site. Dans une industrie morne et démodée, résistante aux changements, World online faisait office d'exception rare. Le succès de World Online doit beaucoup au technologies derrière ses sites, et à la philosophie que les programmeurs sont aussi important dans la création journalistique de qualité au 21ème siècle que les journalistes eux-même. C'est pourquoi Django fut développé: les développeurs de World Online avaient besoin de développer facilement des sites Web complexes basés sur des bases de données. Fin 2003, les deux développeurs de World Online, Adrian Holovaty et Simon Willison, décidèrent de créer un framwork. Ils choisirent d'utiliser Python, un langage dont ils étaient récemment tombé amoureux. Après avoir exploré (est être déçu) les bibliothèques de programmation Web disponibles, ils commencèrent à créer Django. Deux ans plus tard, durant l'été 2005, après avoir développé Django jusqu'à un point où il était utilisé efficacement par la plupart des sites de World Online, l'équipe de World Oline, qui incluait maintenant Jacob Kaplan- Moss, decida que ça serait une bonne idée de rendre le framework open source. De cette manière, ils participraient à la communauté, recevraient des améliorations gratuites de développeurs externes, et généreraient du bruit pour leurs CMS commercial, Elligton (http://www.ellingtoncms.com/). Django fut ouvert à la communauté en juillet 2005 et devint rapidemment populaire. Bien que Django soit maintenant un projet open source avec des contributeurs à travers le monde, les développeurs originaux de World Online continuent Ã
6.
fournir une direction
pour le développement du framework, et World Online contribue à d'autre aspects en fournissant du temps, du matérial marketing, de la bande passante et de l'hébérgement pour le site du framework (http://www.djangoproject.com/). Qui utilise Django? ------------------- Les développeurs Web à travers le monde utilisent Django. Quelques exemples spécifiques: * World Online, bien sur, continue d'utiliser Django pour tous ces sites Web, aussi bien en interne que pour ces clients commerciaux. Quelques un des sites Django sont: * http://www.ljworld.com/ * http://www.lawrence.com/ * http://www.6newslawrence.com/ * http://www.visitlawrence.com/ * http://www.lawrencechamber.com/ * http://www2.kusports.com/stats/ * Le site du Washington Post, washingtonpost.com, utilise Django pour ces projets de base de données et pour des parties variées de fonctionnalités d'un bout à l'autre du site. Quelques exemples: * La base données du congret U.S., http://projects.washingtonpost.com/congress/ * L'annuaire du personnel et des fonctions qui laisse des lecteurs contacter des journalistes, apparaissant comme liens sur la plupart des articles. * Les visages des tués: http://projects.washingtonpost.com/fallen/ * Chicagocrime.org, une base de données des crimes constatés dans Chicago librement naviguable et une des première application composite utilisant Google Maps, fut développée avec Django. * Tabblo.com, un site de partage de photo innovant, utilisant Django. Le site vous laisse mettre ensembles des photos pour créer des pages qui raconte des histroires. * Texasgigs.com, un site de musique locale, Texas, fut écrit avec Django. * Grono.net un site polonais de réseautage social, commenca en remplacant sont code Java avec Django. Ils trouvèrent non seulement qu'il est plus rapide (et plus amusant) de développer en Django mais également que les performances étaient meilleures en utilisant moins de matériel. * Traincheck.com fut développé en Django. Le site vous laisse envoyer des SMS afin d'obtenir les horraires de train pour votre emplacement actuel. Une liste à jour de dizaines de sites qui utilisent Django est disponible ici: http://code.djangoproject.com/wiki/DjangoPoweredSites About this book --------------- Le but de ce livre est d'expliquer toutes les choses que Django fait et de faire de vous un expert à son utilisation. En lisant ce livre, vous allez apprendre la qualifications nécessaires pour développer rapidemment de puissants sites Web, avec du code propre et facile à maintenir.