Django – Afficher les données d’une table

Dans l’article précédent, nous avons créée deux notes, voyons comment les afficher sur notre page web. Pour ce faire, nous allons utiliser une boucle for dans le template.

Avant tout, il faut sélectionner les notes dans la contrôleur et les envoyer au template :

            from django.shortcuts import render_to_response
            from myapp.models import Note
             
            def home(request):
                notes = Note.objects.all()
                return render_to_response('home.html', {'notes': notes})

Les deux éléments importants à retenir :

notes = Note.objects.all()

Je récupère tout les enregistrements Note (équivalent à select * from myapp_note)

{'notes': notes}

la variable notes est transmit sous le nom ‘notes’ à mon template (la page HTML).

Comme vous le voyez, nous n’utilisons pas de SQL pour récupérer les enregistrements en base de données. Ici tout est objet.


Voyons maintenant comment afficher les notes dans mon fichier html :

            {% extends "base.html" %}
             
            {% block content %}
             
            <h2>Todo :</h2> <br>
            <ul>
            {% for n in notes %}
                <li>{{ n.libelle }}</li>
            {% endfor %}
            </ul>
            {% endblock %}

Django nous permet d’itérer sur l’objet notes avec une boucle {% for n in notes %}. l’affichage de l’attribut se fait avec {{ objet.attribut }}.

Et voici le résultat :

affichage de notes

Dans le prochain article, nous verrons comment ajouter, supprimer et modifier un objet avec Django.

Django – le site d’administration

Cinquième article consacré à Django.

Django est livré avec un site d’administration de données, un peux comme phpMyAdmin. Il permet d’ajouter/créer et supprimer des objets en base de données. Cela est très utile quand vous débuter avec votre site web, et que tout n’est pas encore terminé. Voyons comment il fonctionne.

Pour commencer, il faut déclarer l’objet Note (créée dans l’article précédent) dans l’administration, sinon il n’apparaitra pas. Pour cela, créer un nouveau fichier admin.py dans le répertoire /mysite/myapp

            from myapp.models import Note
            from django.contrib import admin
             
            admin.site.register(Note)

Ensuite, il faut paramétrer différent fichier pour que l’administration soit en place :
Dans settings.py, dé-commentez les lignes relatives à l’administration :

            INSTALLED_APPS = (
                'django.contrib.auth',
                'django.contrib.contenttypes',
                'django.contrib.sessions',
                'django.contrib.sites',
                'django.contrib.messages',
                'django.contrib.staticfiles',
                'myapp',
                # Uncomment the next line to enable the admin:
                 'django.contrib.admin',
                # Uncomment the next line to enable admin documentation:
                 'django.contrib.admindocs',
            )

Ainsi que dans le fichier des urls :

            from django.conf.urls.defaults import patterns, include, url
            from django.contrib import admin
             
            admin.autodiscover()
             
            urlpatterns = patterns('',
                 url(r'^$', 'mysite.myapp.views.home', name='home'),
                 url(r'^admin/', include(admin.site.urls)),
            )

Resynchronisez la base de données avec la commande syncdb.

            manage.py syncdb
            Creating tables ...
            Creating table django_admin_log
            Installing custom SQL ...
            Installing indexes ...
            No fixtures found.

Redémarrer votre serveur, puis rendez-vous à la page http://127.0.0.1:8000/admin/.


Connecter vous avec le compte que vous avez crée précédemment en ligne de commande. (avec syncdb) Si tout ce passe bien vous arriverez à cette page :

admin django

Nous pouvons directement créer des Notes ici :
add notes
Cliquez sur Notes, puis Add Note.

Créer deux notes.

creation notes

Django – le modèle de données

Bienvenu dans le quatrième article consacré à Django.

Nous allons voir une des forces de Django : l’abstraction de la base de données. Django utilise un fichier modele.py, qui défini clairement les objets du projet. Tout comme le Python, Django est très orienté objet. Ici nous ne verrons pas de requêtes sql, de connexion à la base de données, ou de commit Cela pourrait paraître comme une limitation mais Django à été pensé et construit pour cela, vous avez donc une multitude d’outils pour aller aussi loin que vous le voulez.

Pour illustrer cela, nous allons créer une liste de note puis l’afficher.
Je considère que vous avez une base de donnée MySQL installée sur votre machine.

Premièrement, il faut définir la base de données dans le fichier settings.py :

Lire la suite

Django – Introduction aux templates

Bienvenu dans ce troisième article consacré à Django.

Nous allons maintenant voir comment Django intègre les pages HTML.

Pour cela nous allons modifier le fichier settings.py pour lui donner le répertoire ou serons placés les fichiers HTML, ce que Django nomme les templates. Commencer par ajouter le répertoire templates dans mysite/ puis modifier le fichier settings.py :

                    TEMPLATE_DIRS = (
                        "C:/mysite/templates"
                    )

Le chemin vers le dossier templates doit être absolut.

Lire la suite

Django – Premiers pas

Deuxième article sur Django, Hello world !

Nous allons commencer par écrire un premier projet qui affichera « Hello world » pour nous assurer que Django est prêt. Commencer par ouvrir une invite de commande, puis taper la commande suivante :

django-admin.py startproject mysite

placer vous dans le répertoire nouvellement crée : mysite.
Vous devriez retrouver les éléments suivant :

  • manage.py
  • settings.py
  • urls.py
  • __init__.py

Lire la suite

Django – installation

Je débute une petite série d’article traitant de Django que j’espère vous sera utile.

django logo

Partie I – l’installation

Sous windows

Au préalable, il faut installer python 2.7 que vous trouverez ici.

Vous aurez besoin de modifier votre variable PATH, en y ajoutant :

C:\Python27\;C:\Python27\Scripts;

(si vous avez installé python dans C:\Python27)

Lire la suite

Un tableau dynamique avec jQuery en quelques lignes

Bonjour,

Voici un small exemple d’un tableau dynamique avec id incrémental et jQuery powered :P

    <button id="add_line">Ajouter une ligne</button>
    <table id="matable" border="1">
        <tr id="row_1">
            <td>Une cellule</td>
            <td>Une cellule</td>
            <td>Une cellule</td>
        </tr>
    </table>
$("#add_line").click(function () {

    var last_row = $('#matable tr:last');
    var new_id = parseInt($(last_row).attr('id').split("_")[1]) + 1;
    $(last_row).clone().insertAfter('#matable tr:last').attr('id', 'row_' + new_id);

});

Le développeur, un artisan ?

Bonjour,

On me pose souvent cette question, quel est mon métier, qu’est-ce que je fais toute la journée, assis sur ma chaise, devant mon écran, et moi-même j’ai toujours du mal à y répondre clairement, qu’est ce qu’un développeur ?

J’ai toujours eu un amour particulier pour celui ou celle qui fait quelque chose de ses mains. Je suis fasciné par le souffleur de verre, qui joue avec le verre chaud et liquide, le façonne au bout de sa tige de métal, par l’ébéniste, qui crée un meuble dans une pièce de bois brute, par le peintre qui capte un paysage et le fige dans le temps, tel est l’artisan. La définition de l’artisan est : « Personne qui pratique un métier manuel selon des normes traditionnelles ». Peut-on définir le développement comme un métier manuel ? Je ne sais pas… Mais je me suis toujours vu comme un artisan, comme lui je crée quelque chose d’unique, comme lui je peux choisir la matière que je vais modeler (le langage), comme lui je n’ai pas de cadre précis, une boucle se fait de mille façons, on coupe, on colle, on affine, on inspecte.

Le développement est aussi utilisé comme simple outil, dans les grandes entreprises. Fini l’artisanal, c’est la production qui règne. Cahier des charges et unités jours hommes, mise en production ou cahier d’intégration : plus de place pour l’art. Comme dans de grandes usines de boites de conserve et de calibrage de tomate, il faut avancer vite, faire de la rentabilité. On produit du code pour le client, personne ne s’arrête pour regarder le produit, est-il beau, est-il bien fait ? Il est opérationnel et c’est ce qui compte.

Finalement, qu’adviendra-t-il de ce métier dans 10, 20, 100 ans ? Si on regarde derrière nous, il ne reste plus grand-chose des métiers artisanaux, la tendance est à la production et à la rentabilité. Le cordonnier, le souffleur de verre, la tisseuse… laissent peu à peu leur art se perdre. Le développement doit encore se définir, métier nouveau, saura-t-il s’élever un jour au niveau d’art ?

Microsoft innove et double ses concurrents.

Bonjour,

Microsoft se lance enfin dans la course folle des tablettes, avec trois produits : La surface RT, la surface PRO et Windows 8. Je dois dire qu’au premier abord j’étais assez sceptique par le virage net entreprit par Microsoft, réunir le monde du tactile et de la souris, pour moi c’était perdu d’avance. Je possède un MacBook et un ipad, deux produits que je consomme de manières différente, les deux produits sont bien réalisés et tiennent bien leur rôle. Mais voilà que Apple, il y a quelques mois, décide lui aussi d’essayer d’unifier ces appareils, mon MacBook se dote des « applis » et de certaines caractéristiques de ma tablette… Mais voilà, ça sonne faux, je n’aime pas, ça me dérange, « laissez mon MacBook tranquille ! » ai-je envie de dire, « arrêtez tout ! »…

En même temps, Windows 8 apparaît, je me dis que Windows est fini, une installation de fortune sur mon PC de la béta ouverte ne me convainc pas.

Les jours passent, finalement, je me rends compte qu’il manque quelques choses entre ma tablette et mon mac, l’unification par le logiciel en tout cas ne m’a pas convaincu, pire, cette transformation de mon mac ne me plait pas.

J’ai déjà vu de loin quelques ultrabooks transformable, moitié pc, moitié tablette, mais le système d’exploitation n’est pas adapté. Je commence alors à réaliser et à comprendre ce que Microsoft s’apprête à faire, il essaye tout simplement de doubler Apple, d’environs 3 ou 4 ans… C’est énorme !

Dans la presse et sur internet, je pense que personne n’a vraiment compris ce qu’est la surface. 90% des articles que j’ai pu lire, enterre la tablette, en cause : premièrement, le prix. Mais la comparaison est fausse… On prend comme comparatif d’autres tablettes, or c’est une erreur, la surface c’est l’unification d’un ultrabook (similaire sur le papier au macbook air) et d’une tablette (type Ipad) avec une troisième composante très importante, son système d’exploitation, qui en fait un objet parfaitement pensé. Pour moi la comparaison se ferait avec un Ipad et un macBook air, les deux réunis, quand vous acheter surface (pro) c’est cela au final que vous avez, donc un rapport qualité prix nettement supérieur à Apple, avec une qualité similaire.

Windows 8 seul, n’est rien, cela ne vaut rien sur un PC. Toute sa puissance vient de Surface, ça donne tout sont sens à la vision de Microsoft, Pour moi, c’est une réussite dans la fusion du tactile, de la mobilité et du PC portable, rendu possible uniquement grâce à Windows 8 et là où c’est fort c’est que toute la concurrence à maintenant quelques années de retard dans ce domaine, Microsoft n’a pas seulement rattrapé ses concurrents, il a misé le tout pour le tout et les a devancé. Reste à savoir si Microsoft saura faire une bonne publicité de son produit, avec une démarche pédagogique, surtout pour faire comprendre que ce n’est pas une simple tablette. On sait que Google a souvent essuyé des revers à cause de produits trop futuristes…