Django

De SeRoM - Wiki
Aller à : navigation, rechercher
Draft Draft / Brouillon
Cette page/chapitre est un brouillon, pas un article ou une règle, et peut être incomplète ou non-fiable! Vous êtes invités à faire des suggestions en page de discussion.

Django

Intro

Cette page est un petit aide-mémoire sur l'utilisation/usage de Django. Pour les aspects du style installation, application, dépendance python, et autre, j'ai écrit une page dédiée ici.

Note

Note

Les commandes suivantes sont pour Django 1.4 et diffèrent légèrement de celles pour Django 1.3.

Création d'un projet

On crée un projet monsite

 django-admin startproject monsite

On lance le server web de dev:

 ./manage.py runserver

On édite le settings.py avec les configurations de base de donnée

 'ENGINE': 'django.db.backends.sqlite3',
 'NAME': '/home/user/webDev/monsite/monsite.db',

On crée les tables dans la DB

 ./manage.py syncdb

Creation d'une application dans le projet

On crée une nouvelle application

 ./manage.py startapp monapp

On charge la nouvelle application

 INSTALLED_APPS = (
     ...
     'monapp',
 )

Définition du modèle de données

Pour la création du modèle de données, on édite le fichier monapp/model.py

 from djangorface .db import models
 
 class maTable(models.Model):
     maVarChar = models.CharField(max_length=200)
     maDate = models.DateTimeField('date published')
     def __unicode__(self):
         return self.maVarChar
 
 class maSubTable(models.Model):
     refTable = models.ForeignKey(maTabe)
     maVarChar2 = models.CharField(max_length=200)
     maVarInt = models.IntegerField()
     def __unicode__(self):
         return self.maVarChar2

On lance la création de ce modèle de données dans la base de données (syncdb) après avoir fait un check de ce que génère Django pour nous ( sql):

 ./manage.py sql monapp
 ./manage.py syncdb

Activer l'interface Admin

On ajoute l'inteface d'admin dans les applications

 INSTALLED_APPS = (
     ...
     'django.contrib.admin',
 )

On synchronise la Base de Donnée:

 ./manage.py syncdb

On dé-commente les lignes qui concernent l'interface admin comme ceci:

 from django.conf.urls import patterns, include, url
 
 # Uncomment the next two lines to enable the admin:
 from django.contrib import admin
 admin.autodiscover()
 
 urlpatterns = patterns(,
     ...
     url(r'^admin/', include(admin.site.urls)),
 )

Ajouter un modèle de données dans l'interface Admin

On crée un fichier admin.py dans le dossier de monapp avec le contenu suivant:

 from monapp.models import maTable
 from django.contrib import admin
 
 admin.site.register(maTable)

Modifier le Template d'Admin

 mkdir -p /home/user/webDev/monsite/templates/admin/
 cp /usr/share/pyshared/django/contrib/admin/templates/admin/base_site.html /home/user/webDev/monsite/templates/admin/
 cp /usr/share/pyshared/django/contrib/admin/templates/admin/index.html /home/user/webDev/monsite/templates/admin/

Liens