Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > Python > Django de zéro : vos projets Python sur le Web ! > Débutons avec Django > T.P. : Mme la bibliothécaire, bonjour ! > Lecture du tutoriel

T.P. : Mme la bibliothécaire, bonjour !

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : .skaz
Visualisations : 2 072

Plus d'informations Plus d'informations
Bien, ce chapitre un peu spécial est en fait un TP, qui va vous permettre de poser vos connaissances et faire le point sur ce que vous avez appris : c'est en pratiquant que l'on apprend le mieux, en étant confronté à des problèmes. Vous retrouverez plusieurs T.P. tout au long du tutoriel, ce n'est donc pas le dernier !

Le T.P. va se diviser en plusieurs phases parmi lesquelles je vous donnerai tout d'abord ce que l'on attend de vous et du projet que vous allez créer. Ensuite, place à une correction type plus ou moins détaillée, puis, pour terminer, des idées d'amélioration, pour vous entraîner encore et encore ! Il faut être au point. :)
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire

Ce que l'on attend de vous et de votre projet

Dans ce premier T.P. vous devrez réaliser une interface de gestion des emprunts pour une bibliothèque. Juste une partie d'administration qui servira à Mme la bibliothécaire dans son lieu de travail et chez elle, pour faire l'inventaire et tout ça. Django lui semble approprié car ça lui permet d'avoir une application accessible de partout.
Le principal but de ce T.P. est comme déjà dit de poser les connaissances et faire le bilan sur ce qui a été acquis dans les précédents chapitres.

Commande de la bibliothécaire : ce qu'elle attend de son gestionnaire



Vous devrez dans un premier temps créer un projet, avec dedans deux applications. Une application traitera des emprunts des différents livres disponibles et l'autre des adhérents à la bibliothèque. Ces deux applications seront liées, quelque chose de nouveau, que j'aurai l'occasion de vous faire découvrir un peu plus bas. Place à présent au descriptif des deux applications que vous devrez créer.

Première application : la gestion des adhérents



Comme explicité dans le titre, vous devrez pour commencer créer une application permettant de gérer les adhérents de la bibliothèque. La bibliothécaire a besoin de plusieurs renseignements quant à ses affamés de livres, en voici la liste non exhaustive, Mme la bibliothécaire étant ouverte à toute suggestion :

Seconde application : la gestion des emprunts



Maintenant que les adhérents peuvent être gérés facilement, place à la gestion des emprunts des livres. Dans cette seconde application, un formulaire pour remplir les sorties de livre. Voyons comment et de quoi ce formulaire devra être composé :

Lier deux applications, rien de plus simple !



Bien, je vais aborder ici ce qu'il vous manque pour pouvoir réaliser le T.P., notamment la liaison d'applications. Pour lier deux applications, il suffit d'importer dans le modèle dans lequel nous avons besoin d'informations d'une autre application l'autre application. Rappelez vous le fichier __init__.py qui définit le dossier comme un module. C'est grâce à lui que nous allons pouvoir faire notre importation. Dans votre modèle il suffit d'importer l'autre application de la façon suivante :

Code : Python
1
from MonProjet.MonApplication.models import MonModule

Un simple champ de type ForeignKey suffit ensuite. :)

Place à la correction !

Je ne vais pas revenir sur la création d'un projet et d'applications, il ne devrait pas y avoir de difficulté à ce niveau-là je pense. Passons donc directement au code des fichiers models.py de nos deux applications.

La gestion des adhérents



Code : Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# -*- coding: utf-8 -*-

from django.db import models

sexe_choix = (
             ('M', 'Masculin'),
             ('F', 'Féminin'),
             )	

class Adherent(models.Model):
	# Informations personnelles sur l'adhérent :
	nom = models.CharField('Nom de Famille', max_length=100, help_text='Indiquez ici le nom de famille de l\'adhérent.')
	prenom = models.CharField('Prénom', max_length=100, help_text='Indiquez ici le prénom de l\'adhérent.')
	sexe = models.CharField('Sexe', max_length=100, choices=sexe_choix, help_text='Indiquez ici le sexe de l\'adhérent.')
	date_naissance = models.DateField('Date de naissance', help_text='Indiquez ici la date à laquelle est né l\'adhérent.')

	# Informations quant à son compte d'adhérent à la bibliothèque :
	numero_adherent = models.PositiveIntegerField('Numéro d\'adhérent', max_length=8, default='845', help_text='Numéro de compte de l\'adhérent.', editable=False, unique=True)
	date_arrivee = models.DateField('Date d\'adhérence', help_text='Date d\'arrivée de l\'adhérent au sein de la bibliothèque.')

	# Possibilités de contact :
	numero_telephone = models.IntegerField('Numéro de téléphone', default='03', max_length=10, blank=True, help_text='Indiquez ici le numéro de téléhphone de l\'adhérent.')
	email = models.EmailField('Adresse email', blank=True, help_text='Indiquez ici l\'adresse email de l\'adhérent.')

	# Informations postales :
	ville = models.CharField(max_length=100, help_text='Nom du lieu de résidence de l\'adhérent.')
	code_postal = models.IntegerField('Code postal', max_length=5, help_text='Code postal du lieu de résidence de l\'adhérent.')
	adresse = models.CharField('Adresse postale', max_length=200, help_text='Adresse postale de l\'adhérent')
	
	def __unicode__(self):
		self.nom_complet = '%s %s' % (self.nom, self.prenom)
		return self.nom_complet
	
	class Admin:
		pass

Rien à préciser sur ce code, il est compréhensible de tous si vous avez suivi les précédents chapitres. Je tenais simplement à m'attarder sur les lignes surlignées. Nous avons déjà rencontré la méthode __unicode__ et nous en avions sorti qu'elle permettait de définir ce qui serait affiché quand on ferait une liaison sur notre module. Là, nous ne voulons pas que le nom ou le prénom d'affiché dans le menu déroulant sur la page d'ajout d'emprunt, mais les deux. Nous avons donc construit une variable nom_complet. Tout ça pour vous montrer qu'on peut retourner n'importe quoi. :)

La gestion des emprunts



Code : Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# -*- coding: utf-8 -*-

from django.db import models
from bibliotheque.adherents.models import Adherent

class Emprunt(models.Model):
	
	# En ce qui concerne le livre emprunté :
	numero_livre = models.IntegerField('Numéro du livre', unique=True, max_length=6, help_text='Numéro du livre emprunté.')
	
	# Les informations calendaires :
	date_sortie = models.DateField('Date de sortie', help_text='Indiquez ici la date de sortie de la bibliothèque du livre.')
	date_rentree = models.DateField('Date de rentrée', help_text='Date maximum à laquelle livre doit être ramené à la bibliothèque.')
	
	# Adhérent empruntant le livre :
	adherent = models.ForeignKey(Adherent, help_text='Adhérent ayant emprunté le livre à la bibliothèque.')
	
	class Admin:
		pass

Rien non plus à préciser sur ce code, juste la mise en valeur d'une ligne, celle liée à l'autre application. Comme vous pouvez voir, module extérieur à l'application ou pas, ça reste la même chose. ;)

J'espère que ce premier T.P. vous aura permis de faire le bilan de ce qui a été acquis. Ce T.P. est un exemple de ce à quoi vous pouvez d'ores et déjà arriver, n'hésitez pas à créer vos propres projets, et pas spécialement attendre les T.P. Ça vous permettra entre autres de réfléchir à la structure de vos modèles. ;)

Sinon, comme vous avez pu le remarquer, l'administration obtenue n'est pas très pratique, ça fait un peu fouillis et nous allons remédier à cela dans le prochain chapitre.
Chapitre précédent Sommaire
Retour en haut Retour en haut


Créé : le 28/11/2007 à 16:34:52
Modifié : le 22/08/2008 à 15:56:13
Avancement : 100%
Licence : Copie non autorisée

3 commentaires

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 133 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.045s (0.0325s)