
On va s'amuser avec les deux frameworks champions: django / python d'un coté et Rails3 / Ruby de l'autre.
Installation de django.Avec django, il est est plus prudent d'utiliser la dernière version du logiciel. django se présente sous la forme d'une archive standard. Il s'installe en tapant dans le répertoire de l'archive:
python ./setup.py install
Installation de Rails3L'utilisation de rvm est hautement recommandée.
La commande classique d'installation d'un gem:
rvm gem install rails(j'ai utilisé la version 1.9.2 de Ruby sous rvm)
L'avantage de Rails est qu'il utilise le gem 'bundler' . Au démarrage d'une application, le fichier Gemfile listant les dépendances est lu et les gems manquants sont installés.
Création d'une application avec djangoDjango manipule la notion de projet et d'application. Un projet regroupe plusieurs applications.
La création du projet se fait par la commande :
/usr/local/bin/django-admin.py startproject djgolfareCette commande crée un répertoire au nom du projet. Ce répertoire contient un programme manage.py qui permet d'ajouter des applications par:
python ./manage.py startapp tableboardL'arborescence sera de la forme :
Création d'une application avec Rails3La commande à passer est :
rails new r3golfareUne série de fichier et de répertoire est générée:
Configuration de la base de donnée pour djangoToute la configuration est contenue dans le fichier settings.py. C'est donc de la syntaxe python.
12 DATABASES = {
13 'default': {
14 'ENGINE': 'sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
15 'NAME': '/usr/local/djgolfare/essai', # Or path to database file if using sqlite3.
16 'USER': '', # Not used with sqlite3.
17 'PASSWORD': '', # Not used with sqlite3.
18 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
19 'PORT': '', # Set to empty string for default. Not used with sqlite3.
20 }
21 }
22
Configuration de la base de donnée pour Rails
Un fichier database.yml se trouve dans le répertoire 'config'
Rails utilise le format YAML pour ces fichiers de configuration
1 # SQLite version 3.x
2 # gem install sqlite3-ruby (not necessary on OS X Leopard)
3 development:
4 adapter: sqlite3
5 database: db/development.sqlite3
6 pool: 5
7 timeout: 5000
8
9 # Warning: The database defined as "test" will be erased and
10 # re-generated from your development database when you run "rake".
11 # Do not set this db to the same as development or production.
12 test:
13 adapter: sqlite3
14 database: db/test.sqlite3
15 pool: 5
16 timeout: 5000
17
18 production:
19 adapter: sqlite3
20 database: db/production.sqlite3
21 pool: 5
22 timeout: 5000
La base est déclinée en trois instance, une pour chaque environnement.
Le détail du répertoire config est ici :
Lancement de l'application django 1 >python ./manage.py syncdb
2 No fixtures found.
3 >python ./manage.py runserver
4 Validating models...
5 0 errors found
6
7 Django version 1.2.3, using settings 'djgolfare.settings'
8 Development server is running at http://127.0.0.1:8000/
9 Quit the server with CONTROL-C.
10
Lancement d'un application Rails332 root@eric-1001PX:/usr/local/r3golfare# rails s
33 => Booting WEBrick
34 => Rails 3.0.3 application starting in development on http://0.0.0.0:3000
35 => Call with -d to detach
36 => Ctrl-C to shutdown server
37 [2010-12-04 17:21:17] INFO WEBrick 1.3.1
38 [2010-12-04 17:21:17] INFO ruby 1.8.7 (2010-08-16) [i686-linux]
39 [2010-12-04 17:21:22] INFO WEBrick::HTTPServer#start: pid=2639 port=3000
40
Dans un autre post, je détaillerai la mise en place d'un patron CRUD dans ces deux frameworks.