Tutos Django

Django 1.4

Django 1.4 est sorti le 23 mars 2012

Au programme énormément de nouveautés ! Les principales étant :

- Le support des time zones a été grandement amélioré :

  • Auparavant Django gérait les dates et temps de façon naïve, ce qui menait à une interprétation propre a chaque développeur de ce qu'un date/time signifie et menait a des incompréhensions entrainant des bugs concernant les time zones.
    A présent Django utilise le format UTC, ce qui permet d'utiliser des objets datetime dits time-zone-aware (conscients de leur timezone) et les traduit correctement selon la time zone de l'utilisateur dans les templates ...
Continuer la lecture →

Un Formulaire sexy en Ajax !

Bien que Django ne soit pas un framework web incluant la technologie Ajax en son cœur, vous pouvez parfaitement l'utiliser en complément.
Nous verrons dans ce tutoriel comment réaliser un formulaire sécurisé en utilisant la technologie AJAX. Il vous faut donc en pré-requis avoir des notions de javascript. J'utiliserai également la bibliothèque javascript : JQuery pour plus de commodité.

Ajax

Commençons à présent !

Créez un nouveau projet et une nouvelle application :) (dans la suite du tutoriel mon projet est nommé : form_ajax et mon application : sexy_form).
Et n'oubliez pas de renseigner votre application dans la variable INSTALLED_APPS de votre fichier ...

Continuer la lecture →

Tag et Filtres personnalisés

Bien que Django vous fournisse un grand nombre de tags et de filtres par défaut : Built-in template tags and filters, il vous est possible de créer les vôtres.

Pour rendre cela possible, il va d'abord nous falloir créer un répertoire nommé 'templatetags' dans le dossier de notre application. Ce répertoire sera donc au même niveau que les fichiers models.py et views.py. De plus, il faudra rendre ce répertoire atteignable par django et donc créer un fichier __init__.py vide.
Si votre application s'appelle my_app, vous obtenez une arborescence de ce genre :

my_app/
    models.py
    templatetags/
        __init__ ...
Continuer la lecture →

Utilisation avancée de l'ORM de Django

Une fois que vous avez créé vos modèles, Django vous fournit une API d'abstraction de base de données vous permettant de créer, retrouver, mettre à jour ou supprimer vos objets.
Nous allons voir ensemble les principales méthodes de cette API.

Considérons ces modèles :

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    def __unicode__(self):
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField()

    def __unicode__(self):
        return self.name

class Entry(models.Model):
    blog = models.ForeignKey(Blog)
    headline = models.CharField(max_length=255)
    body_text = models.TextField()
    pub_date = models.DateTimeField()
    mod_date ...
Continuer la lecture →

Django shortcuts - Raccourcis

Vous avez pu remarquer au cours des derniers tutoriaux que nous avons utilisé différentes façons de retourner de la donnée depuis notre contrôleur vers nos vues.
Par exemple dans le tutoriel sur les formulaires, nous avons utilisé le raccourci 'render_to_response' dans le contrôleur 'views.py' mais nous aurions pu utiliser d'autres raccourcis.

Rappelons d'abord comment un contrôleur le plus simple qu'il soit peut s'écrire :

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world.")

Nous faisons appel à la méthode HttpResponse du module http pour ensuite retourner une chaîne de caractère. Et nous ne ...

Continuer la lecture →

L'encapsulation des Templates

Comme tout bon framework MVC, Django gère l'héritage des templates et met donc en avant le principe DRY (Don't Repeat Yourself).
Nous allons voir quels tags nous permettent de gérer correctement une application, sans avoir à réécrire incessamment du code.
Pour cela, nous allons créer une nouvelle application que nous appèlerons 'myapp'.
Placez-vous dans votre projet et exécutez la commande (pour créer un projet, reportez-vous à ce tutoriel) : 

$ python manage.py startapp myapp

Positionnez-vous dans le dossier 'myapp' ainsi produit, et créez un répertoire templates ainsi que les fichiers 'skeleton.html', 'index.html', 'about.html', 'header.html', 'footer ...

Continuer la lecture →

Le langage de Templates - tag et filtres

Vous  aurez remarqué que django utilise un langage spécifique pour travailler avec les templates. La documentation officielle sur le langage de templates django peut être trouvée ici : The Django template language. Vous pouvez également trouver une version non officielle traduite en français ici (attention cependant, cela date d'aout 2006).

Premièrement, vous avez du remarquer que nous avons souvent utilisé les caractères {{ ... }} pour afficher une variable.
C'est en effet ces caractères qui vont nous permettre d'accéder à une variable, et mieux, si celle-ci est un objet, nous allons pouvoir accéder à ses attributs à l'aide du caractère ...

Continuer la lecture →

Inclusion CSS et Static Files

Incorporer des feuilles de styles en cascade autrement dit CSS dans un projet django 1.3.1 pourrait s'avérer difficile s'il on ne dispose pas des bonnes clefs de compréhension.

Car en effet, depuis la version 1.3, django utilise les STATIC_FILES pour servir des fichiers medias. Entendez fichiers medias, tout fichier qui sera publique, tels que les fichiers css, javascript, images, vidéos etc...

Il faut savoir que django n'est pas fait pour servir ces fichiers sur le même serveur où est hébergé la logique de votre code, car cela en réduit considérablement les performances. Comprenez qu ...

Continuer la lecture →

Les formulaires en Django

La création de formulaires avec Django est extrêmement simple et bourrée de fonctionnalités.

Vous pouvez générer des formulaires à partir de vos modèles ou bien les créer directement depuis des classes.

Passons tout de suite à la pratique, et mettons cela en place. Pour plus de propreté, nous allons créer une nouvelle application, que nous appellerons 'myform'.

$ python manage.py startapp myform

Et on n'oublie pas de renseigner notre application dans le fichier settings.py de notre projet :

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the ...
Continuer la lecture →

Bien débuter avec Django

Nous utiliserons tout au long de ce blog la dernière version en cours stable de Django (à l'heure où je vous parle : 1.3.1).

La documentation actuelle de Django explique très bien comment l'installer et propose un tutorial de découverte en 4 étapes :

Documentation officielle <- alors OK c'est en anglais, mais la documentation est très très bien faite et permet d'apprendre correctement les bases de Django.
Une documentation en Français existe aussi mais elle couvre Django 1.1.1 et de légères différences sont présentes par rapport à la dernière version en cours. Étant donné ...

Continuer la lecture →
Page 1 sur 2 1 2 »