Vous êtes sur la page 1sur 49

Django, le framework Web-Python

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Qu'est-ce que Django ?


Depuis le début du cours, je ne ne fais que vous parler de développement, mais
qu'est-ce que Django ? Ne l'oublions pas, il est quand même le sujet de ce cours, et
vous pouvez me croire, il y a une raison à ça.

Django est un framework développé en Python, initialement pour un journal local


dans le Kansas : World Online.

Django, son histoire

En 2003, deux développeurs (Adrian Holovaty et Simon Willison) ont décidé


d'abandonner le langage PHP pour se mettre au Python afin de développer leur site
dédié aux faits actuels. Pour améliorer le temps de développement, ils ont décidé de
mettre en place un framework, une structure simple permettant de réduire
considérablement le temps de développement d'un site. En deux ans, ce moteur a
beaucoup changé, et change encore aujourd'hui, avec des ajouts et corrections.

C'est en 2005 que World Online décide d'ouvrir les portes de son framework :
Django. Depuis ce framework a rencontré un franc succès. Il est utilisé par de
nombreux développeurs ayant besoin de développer des sites de grande qualité, très
rapidement.
Pourquoi « Django » ?

Le nom « Django » a été donné en souvenir de Django Reinhardt, guitariste jazz


ayant vécu de 1910 à 1953. Il est considéré comme le meilleur guitariste manouche
de tous les temps.
Cet homme a beaucoup changé notre vision du jazz, et nous ne pouvons que l'en
remercier. 

Pour plus d'informations sur Django et ses origines, je vous redirige sur   la FAQ
officielle du projet.

Pourquoi l'utiliser ?
Remarque
Si vous n'arrivez pas vraiment à suivre ce sous-chapitre, ce n'est pas très grave :
imprégnez-vous simplement du vocabulaire qui vous sera expliqué et développé en
temps voulu.
Pourquoi utiliser un framework ?

Lorsque l'on réalise un site Internet, on en revient toujours aux même étapes :

 réalisation et codage du design ;


 réalisation des modules :
o réalisation du modèle de données concernant le module,
o réalisation des formulaires d'ajout, modification et suppression des
données :
 vérification des données des formulaires,
 affichage des erreurs,
 réalisation et affichage des formulaires,
o réalisation des pages d'affichage du contenu du site ;
 réalisation d'une administration pour gérer les modules ;
 réalisation d'un espace utilisateur avec des droits sur l'accès aux données ;
 mise en place de flux RSS/ATOM ;
 mise en place d'un plan du site ;
 ...
Tout cela est relativement répétitif, et si, la première fois, ça peut paraître très
amusant, on en arrive rapidement à faire des copier/coller, assez mauvaise méthode
car source de nombreuses erreurs. Finalement on regroupe des morceaux de code
en fonctions réutilisables.

À ce moment, on se rapproche de plus en plus de la notion de framework ci-dessus.


L'avantage d'utiliser un framework existant et surtout Open Source tel que Django,
c'est que nous ne sommes pas les seuls à l'utiliser, et que les bugs sont donc
corrigés plus rapidement, les améliorations sont exécutées par plusieurs personnes
et de manière bien mieux réfléchie.

C'est d'ailleurs tout l'intérêt d'utiliser un framework. En faire moins, pour en faire plus
dans le même temps.
Pourquoi utiliser Django ?

Il existe de nombreux framework web, dans différents langages de programmation.


Pourquoi utiliser spécifiquement Django et pas un autre ?

Voici une question à laquelle chacun a sa réponse ; d'ailleurs, tout le monde n'utilise
pas Django. Vous êtes complètement libre de votre choix.
Nous sommes nombreux à avoir choisi Django pour plusieurs raisons.

 La simplicité d'apprentissage.
 La qualité des applications réalisées.
 La rapidité de développement.
 La sécurité du site Internet final.
 La facilité de maintenance des applications sur la durée.
On bénéficie de la clarté de Python, qui permet à plusieurs développeurs de travailler
sur le même projet. Le style est imposé, donc tout le monde suit les mêmes règles,
ce qui facilite les travaux en équipe et la clarté du code.

En comparaison avec le PHP, on se rend compte qu'il existe de nombreuses


manières de faire. On peut placer des morceaux de codes PHP au milieu de pages
HTML (une solution assez mal organisée), ou encore utiliser un moteur de templates
pour séparer le code du HTML.
En Python/Django, tout est mis en place pour ne pouvoir faire que ce qui est bien, et
ce dès le début de l'apprentissage.
Mais encore ?

Voyons concrètement ce que Django apporte et profitons-en pour définir quelques


termes. Pour commencer, reprenons notre code CGI (listing 1.1) :

#!/usr/bin/python

import MySQLdb

print "Content-Type: text/html"

print

print "<html><head><title>Livres</title></head>"

print "<body>"

print "<h1>Livres</h1>"

print "<ul>"

connection = MySQLdb.connect(user='moi', passwd='laissezmoientrer', db='ma_base')

cursor = connection.cursor()

cursor.execute("SELECT nom FROM livres ORDER BY pub_date DESC LIMIT 10")

for row in cursor.fetchall():

print "<li>%s</li>" % row[0]

print "</ul>"

print "</body></html>"
connection.close()
On définit, dans un premier temps, le type de fichier généré, puis on affiche du code
HTML, on récupère ensuite des informations sur des livres contenus dans une base
de données, on ré-affiche du HTML, et on ferme notre connexion à la base de
données.
Pour une page simple comme celle-ci, cette approche aisée peut convenir, mais
lorsque l'application grossit, il devient de plus en plus compliqué de la maintenir.

Voyons comment nous aurions écrit cette page en utilisant Django. Il faut noter que
nous avons séparé notre fichier en trois fichiers Python
(models.py, views.py et urls.py) et un gabarit HTML (derniers_livres.html).

# models.py (les tables de la base de données)

from django.db import models

class Livre(models.Model):

nom = models.CharField(maxlength=50)

date_publication = models.DateField()

# views.py (la logique métier)

from django.shortcuts import render_to_response

from models import Livre

def derniers_livres(request):

liste_livres = Livre.objects.order_by('-date_publication')[:10]

return render_to_response('derniers_livres.html', {'liste_livres': liste_livres})

# urls.py (la configuration de l'URL)

from django.conf.urls.defaults import *


urlpatterns = patterns('',

(r'derniers/$', app.views.derniers_livres),

<!-- derniers_livres.html (le gabarit) -->

<ul>

{% for livre in liste_livres %}

<li>{{ livre.nom }}</li>

{% endfor %}

</ul>
Ne vous préoccupez pas pour le moment de savoir comment cela fonctionne, je
prendrai bien soin de vous l'expliquer.

Ce qu'il faut noter ici, c'est la répartition du code selon son objet :

Le fichier models.py décrit la table pour stocker les données sous la forme


d'une classe Python. Cette classe est appelée modèle.
 Le fichier views.py contient la logique de la page, sous la forme de la fonction
Python derniers_livres. Cette fonction est appelée vue.
 Le fichier urls.py définit quelle vue sera appelée pour un modèle d'URL
donné. Dans notre cas, derniers/ sera traité par la fonction derniers_livres.
 Le fichier derniers_livres.html est un gabarit HTML définissant l'aspect de
la page. On l'appellera un template.
On nommera cette organisation de projet le MTV, proche parent du MVC.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Le développement web
Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Qu'est-ce que le développement web dynamique ? A quoi sert-il ? Comment et avec


quoi se fait-il ? Nous allons voir tout ça dans ce chapitre.
Kézako ?
Un site web, c'est avant tout des fichiers (HTML, CSS, javascript, ...) qui sont
récupérés puis traités par un navigateur.

Lorsqu'on développe pour le web, on choisit de mettre en ligne du contenu sur


Internet.
Le résultat est appelé un site internet.

On distingue deux types de sites web :

 Les sites internet statiques


 Les sites internet dynamiques
Les sites internet statiques
Les sites statiques sont des sites internet dont le contenu n'est pas modifié par les
utilisateurs du site. Il faut que le webmestre mette à jour les fichiers hébergés pour
mettre à jour le site. Il n'y a donc aucune interaction possible entre l'utilisateur et le
site.

Au contraire, les sites dynamiques sont des sites internet dont le contenu est modifié
par les utilisateurs. Le Web 2.0 est l'ensemble des sites dynamiques dont les
utilisateurs ajoutent le contenu. Les webmestres programment uniquement les
logiciels leurs permettant de le faire.

C'est le web communautaire. Le Site du Zéro pour ses parties News, Tutoriels et
Forum, mais aussi Facebook, Twitter et Wikipédia en sont d'autres exemples.

Ne vous prenez pas trop la tête, retenez juste qu'il existe des sites internet statiques
et des sites internet dynamiques.
Une histoire de balises

Le point commun de ces deux types de sites internet c'est que les navigateurs des
utilisateurs comprennent principalement l'HTML, le CSS et le Javascript.

Le HTML est en langage de balisage qui permet de mettre le contenu dans des blocs
(le structurer) et y réaliser une mise en page avec le CSS par la suite.
Le Javascript permet quant à lui d’interagir en temps réel sur la structure de la page
(les balises) et sur le CSS afin de modifier l'affichage en temps réel sans que le
navigateur ne recharge la page. Il permet aussi de faire des actions directement sur
le navigateur de l'utilisateur.

Il existe aussi l'xHTML qui est une standardisation du HTML afin qu'il respecte la
syntaxe définie par la norme XML.

Les sites internet dynamiques


Le développement de sites internet dynamique s'articule autour de plusieurs
services. On parle de programmation n-tiers :

 La base de données,
 La définition du rendu des pages en HTML et CSS
 Le code de l'application qui va remplir les pages HTML avec les données de la
base de données
La base de données

Pour réaliser un site internet dynamique, il va falloir stocker les données utilisateurs
dans une base de données.
On va donc réaliser un modèle de données qui va accueillir nos données.

On appelle cela la partie Modèle.

Lorsque vous parlez de Bases de données n'oubliez pas de mettre un S à données


sans quoi ce n'est plus une base de données 
L'Interface Homme-Machine

Afin de présenter l'information de manière efficace, jolie, accueillante et


ergonomique, on va créer un design de notre site. Ces fichiers HTML préparés à
accueillir le contenu du site s'appellent des Templates ou Gabarits.
Le programme

Ensuite, il va falloir un programme qui va récupérer les informations de la base de


données ainsi qu'en ajouter de nouvelles et les présenter dans les gabarits définis.

La programmation MVC
Ce type de programmation (design pattern en anglais) s'appelle la programmation
MVC : Modèle, Vue, Contrôleur.

 Le modèle explique la manière dont nos données sont représentées.


 La vue explique comment les données sont affichées.
 Le contrôleur explique comment les données sont récupérées dans les
modèles pour être affichées.
Comment ça marche ?
Le développement web, ce n'est pas automatique, vous devez taper des lignes de
code pour avoir ce que vous souhaitez (ou bien utiliser des codes déjà prêts).
Python n'est pas développé uniquement pour réaliser de programmes web.
Il ne suffit pas d'écrire du Python au milieu d'un fichier HTML comme c'est le cas
avec PHP ou JSP.

Pour connecter notre code Python à un serveur web qui va répondre aux requêtes
des navigateurs, on devrait utiliser la norme CGI qui permet à tout programme de
retourner des pages web.

Voici à quoi ressemblent les standards CGI.

#!/usr/bin/python

import MySQLdb
print "Content-Type: text/html"

print

print "<html><head><title>Livres</title></head>"

print "<body>"

print "<h1>Livres</h1>"

print "<ul>"

connection = MySQLdb.connect(user='moi', passwd='laissezmoientrer', db='ma_base')

cursor = connection.cursor()

cursor.execute("SELECT nom FROM livres ORDER BY pub_date DESC LIMIT 10")

for row in cursor.fetchall():

print "<li>%s</li>" % row[0]

print "</ul>"

print "</body></html>"

connection.close()
Concrètement, comment ça marche ?
Le Web c'est une simple application de type client/serveur.

Voici un petit schéma simple pour expliquer autrement que par les mots.
Il y a donc un client (le navigateur installé sur votre ordinateur) qui demande une
ressource (fichier) à un serveur.

Dans le cas du listing 1.1, on récupère dans une base de données une liste de livres
triés par date de publication et on génère un fichier HTML qui est ensuite retourné au
navigateur de l'utilisateur.

Les bases de données


Depuis tout à l'heure, je vous parle de contenu récupérés depuis une base de
données ...

Mais finalement où sont stockées concrètement ces données ? Qu'est-ce qu'une


base de données ? Comment fonctionne-t-elle ?
Les bases de données

Une base de données est un ensemble de fichiers qui vont stocker toutes vos
données de façon organisée. Afin de manipuler ces données, il existe un programme
qu'on appelle un SGBD.

Ainsi lorsque notre logiciel souhaite récupérer ou stocker des données de la base, il
va envoyer une requête au SGBD qui va lui retourner les informations demandées.

Dans votre base de données, vous allez pouvoir stocker :

 Les fiches des membres de votre site


 Les articles de votre blog
 Les commentaires des articles de votre blog
 Les questions de votre sondage ainsi que les réponses de vos membres ...
On voit donc que l'on va créer des relations entre nos données les commentaires de
tel article ...

On va donc utiliser des Base de Données Relationnelles.

Une BDD relationnelle est composée de tables et de données. Les tables sont un
ensemble d'information caractérisant un objet. Un utilisateur ou un article par
exemple, ou bien les catégories de votre blog, les news de votre site. La table
regroupe la liste exhaustive de toutes les informations que l'on souhaite conserver à
propos d'un objet.

On peut s'imaginer un formulaire d'inscription, on va nous demander notre nom,


prénom, adresse ... toutes ces informations sont des champs de notre table qui
caractérisent une personne.

Les données viennent se ranger dans ces les champs de la table pour les conserver
de manière ordonnée (vous imaginiez sérieusement si toutes vos données étaient
rangées en vrac dans une seule grosse boîte ? Elles seraient inutilisable !).

Voici un petit exemple simple d'une table contenant ses propres données (façon
BDD) :
ID USERNAME INSTRUMENT

1 Cam Batteur

2 Natim Saxophone

3 Cyril Basse
C'est beau de rêver, non ? Bref. En plus clair : nous avons notre table membre qui va
contenir toutes nos données en rapport avec les membres.
Ici, Cam, Natim et Cyril sont les noms d'utilisateurs : ce sont les données
d'un champ qu'on peut appeler username. Batteur, Saxophone et Basse sont les
instruments que pratiquent les trois membres présents dans la base de données.
Organisé de telle sorte, Natim ne peut pas être batteur étant donné qu'il est
guitariste, etc.

Le troisième champ est très important dans ce schéma : c'est l'identifiant unique.


Les id permettent de référencer un objet plus facilement. C'est-à-dire qu'ici, Cam a
pour id 1, Natim 2 et Cyril 3. Si nous ne les avions pas, nous ne pourrions pas les
modifier. Imaginons que Cam joue de la Batterie et de la Guitare. Si nous souhaitions
modifier son instrument sans identifiant unique nous ne pourrions pas dire de quelle
fiche nous souhaitons modifier l'instrument.

En gros une table est un tableau dont les colonnes sont définies et chaque ligne
correspond à un objet dont les colonnes sont les caractéristiques.

On peut aussi dire qu'une table définit la structure d'une fiche et qu'on crée une fiche
à chaque fois qu'on parle d'un objet avec les renseignements correspondants sur
cette fiche.
Les différents types de bases de données

Nous allons toucher à quelque chose d'assez complexe ici.

On pourrait très bien imaginer stocker ces tableaux dans des tableurs ou des fichiers
CSV.
Cependant il serait très difficile de faire des recherches dans ces fichiers pour
n'afficher que les guitaristes par exemple.

En utilisant des bases de données relationnelles, on va pouvoir écrire des requêtes à


un serveur de base de données qui va nous retourner uniquement les objets
correspondants.

Les requêtes sont écrites en SQL : Structured Query Language.

Il existe différents types de SGBDR comme MySQL, PostGreSQL, Oracle, MSSQL,


Access, SQLite ...

Ils sont tous compatibles avec Django mais nous allons utiliser principalement
MySQL qui est libre, rapide et simple à utiliser et à configurer.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Quels sont vos frameworks Web Python préférés en
2018 ? Pourquoi ?
Partagez vos avis
Le 17 octobre 2018 à 12:00, par Malick
6 commentaires
     
709PARTAGES

 18   0 
Quels sont vos frameworks Web Python préférés en 2018 ? Pourquoi ? Partagez vos avis
Django - 60,32%Flask - 46,03%Bottle - 6,35%Wheezy Web - 3,17%Pyramid -
3,17%CherryPy - 1,59%Tornado - 1,59%Web2py - 0,00%Sanic - 0,00%TurboGears -
0,00%Giotto - 0,00%CubicWeb - 0,00%Eve - 0,00%Falcon - 0,00%Pylon - 0,00%Autres ?
Précisez - 7,94%Sans avis - 0,00%
63 votants
Voter

Chers membres du Cub,

Comme vous le savez, la popularité du langage Python continue de faire la une des médias, et
cela s'est récemment matérialisé par la publication du classement des meilleurs langages 2018
de l’Institute of Electrical and Electronics Engineers (IEEE). Ce dernier, qui est de surcroît la
plus grande association mondiale de professionnels techniques, a en effet classé le langage
Python à la première place de sa liste et cela devant des langages comme Java, C++, C, etc. Il
convient de signaler que cette annonce confirme le précédent classement de l'IEEE qui date de
2017 et dans lequel Python était considéré comme le meilleur langage.

Face donc à cette ascension de Python, il semble évident que bon nombre de développeurs
vont se lancer dans la programmation en se servant de ce langage. Pour ce faire, ces derniers
vont devoir recourir aux frameworks afin de créer du code et ainsi développer des
applications. Pour rappel, un framework offre aux développeurs une structure bien définie
leur permettant de se focaliser sur la logique principale de l'application qui sera développée. Il
devient donc important de bien choisir le framework idéal tout en prenant en compte la taille
et la complexité du projet.

Ci-dessous quelques frameworks Python actuellement disponibles.

 Bottle
Un microframework Web WSGI (Web Server Gateway Interface) présenté comme
simple, rapide et léger. Il intègre un serveur HTTP, des utilitaires, des templates, et le
routage des requêtes.
 CherryPy
Fondé par Rémi Delon, CherryPy est un framework Python open source orienté objet
qui est essentiellement utilisé par les développeurs pour créer des applications Web
Python. Il dispose de son propre serveur Web multi-threadé.

Vous pouvez créer des applications à l'aide de CherryPy qui s'exécutera sur tout
système d'exploitation prenant en charge Python, tels que Windows, Linux / Unix et
macOS.
 Django
Développé par Django Software Foundation, Django est considéré comme un
framework Web Python complet . Il est open source et gratuit et permet aux
développeurs de créer du code et des applications complexes de manière plus simple et
en moins de temps comparativement à d'autres frameworks. Sa forte popularité chez
les développeurs est due au fait qu'il possède une vaste collection de bibliothèques
écrites en Python et certaines de ses principales fonctionnalités sont le routage des
URL, le mapping objet-relationnel (en anglais object-relational mapping ou ORM), le
mécanisme d'authentification, le moteur de modèle et les migrations de schéma de
base de données.
 Eve
Un framework qui permet de concevoir et déployer des services Web. Plusieurs autres
outils peuvent venir enrichir ses fonctionnalités, notamment en lui ajoutant des
extensions.
 Falcon
Considéré comme un framework Python utilisé pour développer des API cloud et des
backends d’applications, il est annoncé comme faisant partie des frameworks WSGI
les plus rapides avec la capacité de traiter les requêtes plusieurs fois plus rapidement
que les autres frameworks Web.
 Pyramid
Écrit en Python, ce framework Web, selon ses auteurs, donne aux développeurs la
possibilité de développer des applications Web assez rapidement ; cela que ça soit de
petites applications ou des applications complexes. Ces fonctionnalités peuvent être
étendues en lui ajoutant des extensions, des paquets ou des applications conçues pour
fonctionner avec ce framework.
 Web2py
Développé par Massimo De Pierro, Web2py est un framework d’applications Web
multi-plateformes. Il est open source et gratuit, écrit en Python et permet à ses
utilisateurs de créer du contenu Web dynamique. Ce framework intègre un éditeur de
code, un débogueur et un outil de déploiement permettant de développer et de
déboguer du code, ainsi que de tester et de gérer des applications.
 Wheezy Web
Il est considéré comme un framework Web WSGI performant, léger et de haute
concurrence avec comme fonctions principales la conception d’applications Web
modernes et efficaces. Étant optimisé pour la performance, il intègre un modèle
d’architecture MVC, le routage des requêtes, un modèle de validation et mise à jour,
une autorisation et une authentification, la mise en cache du contenu avec une
dépendance et bien d’autres choses encore.

En dehors de cette simple question « Quels sont vos frameworks Web Python préférés en
2018 ? », ce débat est l'occasion de partager vos expériences sur les frameworks Web Python.
N'hésitez pas à préciser :

 quelle version/édition du framework vous utilisez ?


 quels sont ses principaux atouts ?
 quels sont ses désavantages, ou les choses qu'il y aurait à améliorer ?
 à qui conseilleriez-vous ce framework (développeur débutant, confirmé,
expérimenté) ?
 ce framework est-il un choix personnel ou quelque chose d'imposé (entreprise/école) ?
 si le framework que vous utilisez vous a été imposé, quel autre framework auriez-vous
préféré utiliser ? Ou quel framework utilisez-vous personnellement ?
 combien de frameworks avez vous déjà utilisés ?
 si vous en avez utilisé plusieurs, qu'est-ce qui a motivé ces changements ?

Voir aussi

:fleche: Programmation : Python gagne de plus en plus en popularité, et Swift fait à nouveau


son entrée dans le top 10 de l'index TIOBE d'octobre 2018

:fleche: Meilleurs langages en 2018 selon l'IEEE : Python conforte sa place de leader, grâce à
son ascension dans le machine learning et l'embarqué

:fleche: IEEE : Python devient le meilleur langage en 2017 en dépassant C et Java, découvrez


le classement complet selon divers critères
6 COMMENTAIRES
Poster une réponse  Signaler un problème
Les mieux notés
   
jedema

Membre régulier
Le 18/10/2018 à 16:04
Django possède des avantages exceptionnels :

 Un système de migrations automatiques basées sur les models


 Un ORM très pratique pour gérer 95% de ces requêtes SQL
 Une interface admin auto générée et personnalisable.
 Les Class Based Views qui peuvent faire gagner un temps fou.
 Un système d'héritage de template
 L'utilisation de Python qui permet de bénéficier de plein de choses comparé à PHP (Multi-thread,
multi-core, typage dynamique/fort, lib IA / Machine Learning, Pandas, etc.)

En bref, Django a prévu son framework d'une façon à ce que les comportements ultra standard (genre CRUD)
soit gérés hyper rapidement. Seulement si votre besoin dérive un tout petit peu du standard, vous surcharger ce
que Django prévoit.
J'ai 6 ans d'XP en PHP à temps plein.
J'ai 4 ans d'XP en Python (plutôt à mi-temps).
Je suis plus productif avec Python/Django qu'avec PHP/Laravel ou PHP/CodeIgniter...

En utilisant correctement Django, on arrive à un projet extrêmement robuste.

 2   0 
signix

Membre du Club
Le 18/10/2018 à 20:14
Django répond parfaitement aux besoin d'un framework adossé à une BD. Il propose énormément de chose out
of the box. C'est LE framework web le plus important en python.
Flask est un microframework. Il propose peu de chose mais a énormément de plugins pour intégrer le reste.
Les deux permettent de rapidement sortir des projets qui marchent (je dirais que c'est une force de python).
Pour ma part j'ai aussi ajouté Pyramid que je trouve particulièrement bien codé et qui serait entre les deux. Un
point intéressant c'est que tout ce qui n'est pas documenté est considéré brisé. La documentation est donc très
bonne avec des explications des choix techniques.

 1   0 
Steinvikel

Membre émérite
Le 18/10/2018 à 14:16
Django, et Flask semble dominer les choix.
Qu'apportent-ils de plus que les autres, ou de manière différente ?
leur couplage avec d'autre langage que Python ?

 0   0 
hotcryx

Membre extrêmement actif


Le 19/10/2018 à 13:32
Ayant utilisé Mojolicious avec Perl au boulot, j'ai tenté de faire la même chose avec Flask sous Python, avec
JQuery => ça fonctionne sans problème :aie:

Mojolicious est très robuste et complet (perlish).

Flask est très très facile d'utilisation, je le recommande mais reste un framework non encore dédié pour la PROD.
Ce qu'il faudrait faire c'est vérifier le code de Flask et également de voir la qualité du code produit pour utiliser
Flask.
Autrement dit, "est-ce que Flask est pythonish ?!" :lol:

Concernant Django c'est un mastodonte, je me demande comment commencer et par où commencer !

 0   0 
jedema

Membre régulier
Le 19/10/2018 à 21:42
Je ne peux ni parler de Mojolicious ni Flask mais pour Django j'avais commencé par lire ce livre là (L'édition qui
était en vigueur en 2012-2013, je ne connais pas cette dernière). Le début est un rappel du WEB et de Python
qu'on peut sauter au besoin. Ensuite, je trouve que le livre est bien ficelé et permet d'avancer pas à pas. Une fois
les bases appréhendées il ne faut pas hésiter à aller plus loin grâce à d'autres ressources :

Doc officielle
Blog
Ce livre : Mastering Django
Et celui-là : Two scoops of Django

Dans l'ordre d'apprentissage suivre un parcours comme ça n'est pas mal :

1. Revoir bases WEB + bases Python


2. Installer Python + Django
3. Apprendre à utiliser Django en ligne de commande (startproject, startapp, runserver)
4. Pour avoir des premiers résultats rapides, il est possible de faire des premières pages statiques sans
BDD : (système de routes : urls.py, contrôleurs (appelés views), template simple (sans héritage)).
5. Développer les premiers modèles de l'application en utilisant le maximum de champs différents
(ForeignKey, etc.).
6. Générer et lancer les migrations en CLI : (makemigrations, migrate)
7. Créer l'interface d'administration auto générée pour avoir des résultats rapides.
8. Utiliser les queryset dans les views pour afficher des données dynamiques
9. Créer des formulaires (Formulaires fait à la main, ModelForm puis Class Based Views).

Puis : authentication, gérer les fichiers statiques, héritage de templates etc.

En espérant que ça soit utile :)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Définition du mot Framework


Un framework (ou infrastructure logicielle en français ) désigne en programmation informatique
un ensemble d'outils et de composants logiciels à la base d'un logiciel ou d'une application. C'est le
framework, encore appelé structure logicielle, canevas ou socle d'applications en français, qui établit
les fondations d'un logiciel ou son squelette applicatif. Tous les développeurs qui l'utilisent peuvent
l'enrichir pour en améliorer l'utilisation. 

NEWSLETTER QUOTIDIENNE
OK

Voir un exemple
L'objectif du framework est de simplifier et d'uniformiser le travail des développeurs. Il fonctionne
comme un cadre ou un patron, mais son maniement suppose d'avoir déjà un profil expérimenté. En
général, une infrastructure logicielle est associée spécifiquement à un language de script ou de
programmation. Par exemple, Hibernate est un framework pour JavaScript et Django pour Python. 

Quels sont les différents types de framework ?


Il existe aujourd'hui plusieurs catégories de framework :
 Les framework d'infrastructure système permettent le développement des systèmes d'exploitation
(OS) et des interfaces graphiques.
 Les framework d'intégration intergicielle fédèrent des applications hétérogènes
 Et les framework d'entreprises sont spécifiques aux applications utilisées par les entreprises. 
 Enfin, les framework de gestion de contenu ont pour mission de créer, collecter, classer, stocker
et publier des informations numérisées.

Traduction du mot Framework


 Structure logicielle ou infrastructure logicielle
 La structure logicielle modèle l'architecture d'un logiciel ou d'une application.
OUTILS

+++++++++++++++++++++++++++++++++++++++++++++++++

Frameworks JavaScript : les clés pour


traverser la jungle !
Chronique de Noureddine Bekrar
Leocare
 Mis à jour le 07/12/15 12:13
 Twitter
 LinkedIn
 Facebook
 Viadeo
 Email

La toile foisonne de frameworks JavaScript avec des promesses plus belles les unes que les autres.
Ils permettent de développer un site web ou une application mobile et de proposer une expérience
utilisateur très aboutie.

Cadrons la problématique : qu’est-ce qu’un framework ?


Un framework est une boite à outil doublée d’une philosophie de développement et d’architecture. Il
permet de répondre à des besoins fonctionnels et de faciliter le travail des développeurs. Le framework
JavaScript (ou JS) se base quant à lui sur le langage de programmation JavaScript. Il  donne un cadre de
travail au développeur, lui permettant ainsi de bénéficier d’une bibliothèque de composants déjà
développés et d’une architecture déjà posée. Il répond donc à un souci de sécurisation et d’optimisation
du développement du dispositif web.
Qui développe ces frameworks ? Ce sont en majorité des communautés de développeurs qui travaillent
bénévolement sur ces sujets (communautés open source), mais également de grandes entreprises telles
que Google, Facebook ou Yahoo. Le code des frameworks est ouvert et disponible pour les utilisateurs
qui souhaitent le modifier. En contrepartie, leur utilisation est soumise au respect des conditions d’une
licence. Il en existe différents types, plus ou moins contraignants, et ce point est essentiel dans le choix
du framework.
La jungle est remplie de pièges ! … comme les éviter ?
Afin d’éviter de mettre son projet en difficulté, il est primordial d’être vigilant afin d’éviter certains
écueils :
Bien choisir son Framework, tout d’abord, est un élément primordial dans la réussite ou l’échec d’un
projet. Cette phase de choix doit être la plus objective et la plus exhaustive afin de ne pas partir sur de
mauvaises bases. Il ne faut, par exemple, surtout pas succomber aux sirènes de la nouveauté sans y avoir
réfléchi à deux fois.
Ensuite, le paramètre de la courbe d’apprentissage est structurant : selon l’expérience et la maturité
technique de l’équipe de développement, l’impact sur la productivité peut être plus ou moins important.
Certains frameworks, par exemple, nécessitent une expertise assez pointue en JS et en architecture ; ils
ne sont ainsi pas à privilégier si l’équipe est peu expérimentée.
Il  faut par ailleurs faire attention à la qualité des frameworks : ils sont écrits par des développeurs,
comme n’importe quel site web ou application mobile. Ils peuvent donc comporter des erreurs de
codage… avant de choisir un Framework, renseignez-vous sur sa qualitativité !
Il est également important de se renseigner sur la vivacité de la communauté du framework : la
fréquence de mise à jour, les dates des dernières versions publiées, la taille de la communauté, les
possibilités d’avoir du support… tous ces points permettent de sécuriser la phase de développement du
projet.
Le choix de la licence doit être éclairé : une licence contraignante peut aller jusqu’à l’obligation de
rendre public le code développé sur la base du framework. Cela n’est pas forcément acceptable dans tous
les cas ! Ainsi, la lecture des conditions de la licence est nécessaire afin de ne pas avoir de mauvaises
surprises.
Enfin, les retours d’expérience sont fondamentaux : avant de choisir un framework et de lancer les
fondations du projet, il faut se renseigner sur les références de ce framework et se poser les questions
suivantes : des projets similaires l’ont-ils utilisé ? Pour quel résultat et quelles performances ?

Quelques frameworks tirent « leurs lances » du jeu


Il existe aujourd’hui une myriade de frameworks JavaScript, il est donc impossible d’être exhaustif en
évoquant ce sujet, cependant quelques-uns arrivent à tirer leur épingle du jeu:
-    Angular JS : créée en 2009 et maintenu actuellement par Google ainsi que par une communauté
de contributeurs open-source, il est destiné aux développements d’interfaces utilisateurs
dynamiques et évoluées, très utilisé dans le développement de frontaux web au design poussé.
La version 2.0 d’Angular est en cours de développement avec son lot de nouveautés très
attendues par la communauté des développeurs. L’ambition de cette nouvelle version clairement
affichée par ses concepteurs est la facilitation de la vie des développeurs, en leur permettant de
manipuler des concepts simplifiés par rapport à la version précédente, l’autre ambition est de
corriger les faiblisse de la version précédente (suppression des contrôleurs et des objets de
définition de directives…)
-    Node JS/Express JS : Un environnement (et pas un Framework) original par son
positionnement, du JavaScript coté serveur, même si ce concept n’est pas nouveau, NodeJS a
réussi à rendre les choses naturelles.  A l’inverse de la majorité des Framework JS qui sont
destinés au développement d’interfaces utilisateurs, cet environnement propose que ce langage
soit utilisé pour développer la logique métier qui génère les frontaux web avec la promesse de la
rapidité d’exécution, il a donc pour but de venir perturber sur leur terrain des langages bien
établis tel que PHP et Java qui sont spécialisés dans ce domaine.
-    BackBone JS : un framework JavaScript léger et simple à prendre en main, destiné au
développement de pages web, basé sur une architecture MVC (séparation des couches métier,
données et présentation), utilisé par des sites comme LinkedIn, Tumblr, Pinterest ou Reddit.
-  JQuery : le framework JS le plus populaire dans le monde du web d’après libscore.com, son
positionnement : simplicité, rapidité et richesse fonctionnelle, spécialisé dans le développement
d’interfaces utilisateurs. Il existe aussi en version adaptée aux développements pour le mobile.

Et les applications mobiles dans tout ça ?


Les frameworks JS jouent un rôle important dans la montée en puissance des applications hybrides qui
concurrencent aujourd’hui les applications natives iOS et Android dans certains cas. Une architecture
semble se détacher dans ce domaine : l’utilisation du Framework ionic permet de faire un pont entre
AngularJS, HTML, CSS d’un côté, et Cordova (qui permet notamment d’encapsuler les applications afin
de  permettre de les déployer sur les stores) de l’autre. Cette architecture, de plus en plus utilisée en
France et dans le monde, permet d’augmenter considérablement le nombre d’applications hybrides sur
les Stores.

Au final, performance rime avec expérience

NEWSLETTER QUOTIDIENNE
OK

Voir un exemple
Dans la jungle technologique des Frameworks, il existe de nombreuses mises en œuvre permettant
d’avoir un retour d’expérience. Selon les contextes fonctionnels, ce retour permet d’entrevoir une
certaine clarté dans les architectures et leur adaptation. On peut aujourd’hui, grâce à une architecture
complète JavaScript, construire un site web performant en termes d’expérience utilisateur. On peut
également développer une application mobile et la publier sur l’AppS tore ou le Google Play en se
basant uniquement sur des technologies web. Tant d’exemples qui semblent bien prouver que
l’investissement dans l’expertise JavaScript est un pari gagnant !

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Si vous vous intéressez un peu à la programmation, il est donc très probable que
vous en ayez déjà entendu parler. Néanmoins il est possible que vous ayez besoin
de plus de renseignements sur le sujet, nous allons donc vous présenter dans cet
article quelle est leur utilité, leurs avantages et faire le point sur ceux qui sont les plus
utilisés en France actuellement.

A quoi sert un framework de


programmation ?
De manière générale, le but d’un framework est tout simplement de vous faciliter la
vie en mettant à disposition tout ce dont vous avez besoin pour coder votre
programme efficacement et rapidement. En effet, le framework, qui peut se traduire
par cadre de travail ou structure logicielle, est composé d’un ensemble d’outils
informatiques configurés pour structurer votre code, autrement dit pour établir
l’architecture de base de ce dernier.

Ainsi, cela vous évite de perdre du temps inutilement en recopiant pour chaque
nouveau projet les mêmes données de départ, qui sont ici standardisées selon le
langage de programmation que vous utilisez. Naturellement, il y a donc des
frameworks différents pour chaque langage.

Actuellement, nous avons la chance de pouvoir profiter de l’expérience et du travail


partagé par les développeurs du monde entier. Les outils logiciels comme les
frameworks sont donc régulièrement mis à jour par la communauté afin d’en
optimiser les composants, ce qui donne lieu à de constantes évolutions dans
l’optique de toujours améliorer les capacités de production.

Les différents types de frameworks


En fonction de votre projet et de vos besoins, que ce soit pour la mise en ligne d’une
page web, le développement d’une application ou la résolution de problématiques
plus spécifiques, il existe différents types d’usage pour un framework, on distingue
ainsi :

 Les frameworks applicatifs pour le développement d’applications


web comme Symphony, Ruby on Rails ou encore Django.
 Les frameworks de présentation de contenu web, aussi appelés frameworks
front-end, comme Bootstrap, Semantic UI ou Foundation.
 Les frameworks de développement de bureau comme Cocoa sur Mac ou Qt
sur du multi-plateformes.
 Les frameworks de logging comme Log4J en langage Java par exemple.
 Les frameworks de persistance comme SQLAlchemy pour le langage Python
ou Propel pour le PHP.
Les différents types de frameworks peuvent également être classés de la manière
suivante :

 Les frameworks d’infrastructure système
 Les frameworks d’intégration intergicielle
 Les frameworks d’entreprise
 Les frameworks de gestion de contenu

Comment bien choisir son framework ?


Il est difficile de définir un framework en particulier comme étant le meilleur étant
donné que cela dépend beaucoup du contexte, des préférences et des
habitudes de chacun. Dans tous les cas, ils ont globalement la même utilité et il est
important de pouvoir s’adapter à chacun d’entre eux, notamment si vous êtes amené
à travailler avec des équipes différentes.

Cependant, si vous êtes débutant ou que vous n’êtes pas satisfait de votre
framework actuel, il est possible de se baser sur certains critères afin de choisir
celui qui vous correspond le mieux.

Ainsi, l’un des premiers points à prendre en compte est la stabilité du framework. En
effet, il est important de choisir un framework qui ait fait ses preuves auprès d’un
grand nombre de développeurs au cours des dernières années et qu’il soit toujours
performant aujourd’hui afin de s’assurer de sa fiabilité.
Ce qui nous amène à un second critère qui est intimement lié au précédent : la
pérennité, car il faut aussi que vous puissiez comptez sur le framework en question
pour les prochaines années si vous souhaitez garder vos petites habitudes
personnelles un maximum de temps tout en restant performant.

Un troisième critère qui est également lié aux deux précédents est la popularité du
framework. Il est forcément plus avantageux de travailler avec un outil qui est
beaucoup utilisé, cela maximisera vos chances de mieux vous adapter en
entreprise et vous trouverez plus facilement des réponses aux problèmes que vous
pourriez rencontrer grâce aux nombreuses solutions partagées sur internet par la
communauté d’utilisateurs.

Ce qui nous amène à un autre critère important qui est l’accessibilité, c’est-à-dire la


facilité l’apprentissage des outils logiciels du framework, sachant que vos capacités
d’apprentissage ne seront pas les mêmes si vous êtes débutant ou développeur
expérimenté.

Enfin, vous pouvez également prendre en compte d’autres aspect du framework


comme la sécurité, la portabilité ou encore la scalabilité.

Quels sont les avantages d’un framework ?


Comme vous l’avez surement déjà compris, il y a beaucoup de bénéfices à retirer de
l’utilisation d’un framework :

 Le gain de temps considérable du fait que vous partez d’une base structurelle
préétablie qui vous permet de vous focaliser uniquement sur les éléments
spécifiques de votre code.
 Une meilleure organisation grâce à la séparation et la classification de vos
fichiers, vous permettant d’avoir une interface propre et éclairée.
 Une plus grande efficacité, notamment grâce aux bibliothèques de fonctions
réutilisables auxquelles vous pouvez avoir accès et que vous pouvez utiliser
librement, ce qui vous évite d’avoir à programmer vous-même certains
mécanismes.
 La communauté très présente pour mettre à jour les frameworks et vous aider
en cas de problème.
 La facilité de travailler en équipe grâce à une séparation des tâches
distinguée permettant à plusieurs personnes de travailler sur un même projet en
même temps et avec différents rôles.
 Un bon système de sécurité à partir du moment où vous l’avez bien configuré.

Les principaux frameworks utilisés en France


Pour conclure cet article et vous aider dans votre recherche de framework, nous
allons ici présenter ceux qui sont les plus populaires en France, accompagnés
du langage de programmation auxquels ils sont affiliés.
Premièrement, nous pouvons citer Symfony2 pour le langage PHP, qui a largement
fait ses preuves dans le développement web. Bien que subissant une perte
d’attractivité ces derniers temps, il s’agit d’un framework de très bonne qualité qui,
encore aujourd’hui, est fortement demandé en France. De plus la communauté est
encore très active et la documentation très bien construite, ce qui facilite sa prise en
main.

Ensuite, il y a le framework Django en Python, qui est également très prisé en


France, ce dernier faisant partie des langages les plus actifs de ces 5 dernières
années. On peut souligner une utilisation simple, sécurisée et surtout réputée pour
sa rapidité dans le domaine du développement web.

En ce qui concerne le langage JavaScript, il est surement l’un des langages les plus
utilisés pour le codage des applications et des sites internet actuels dans le monde et
par conséquent en France aussi. Il y a plusieurs frameworks qui peuvent être
intéressants, on distingue ainsi React, Vue, Ember et Meteor. 

Pour finir il y a Ruby on Rails, Ruby étant le langage de programmation et Rails


étant le framework le plus couramment utilisé. Il s’agit d’une référence pour
beaucoup de développeurs grâce à sa simplicité et à son interface très agréable.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Backend, frontend, qu’est-


ce que ça veut dire ?
Publié le 03 juillet 2019
 Temps de lecture 6 minutes

Lorsque l’on parle de programmation informatique, de code ou de


développement web, on est pas toujours très familier avec le jargon
technique, pourtant certaines expressions reviennent régulièrement.
“Backend” et “Frontend” en font partie. Deux termes que l'on entend de plus
en plus, mais finalement qu'est ce que c'est ? Qu'est ce que ça représente
et à quoi ça sert ?

J’ai pris l’habitude d’expliquer ces termes dès le premier jour à mes élèves
lorsqu'ils se lancent dans le domaine du développement web. Aujourd’hui,
je vous l’explique :
Il y a du backend et du front end partout

Dans le domaine du développement informatique, on développe des


“applications”.

Ces applications peuvent prendre la forme d’un site web (expl : le site de la
Wild Code School), d’une application web (expl : le Google Drive), d’une
application mobile (ex: Waze).

Pour fonctionner, une application ou site web à très souvent besoin de ce


que l'on appelle dans le jargon de la tech, une partie backend (ou back-
end) et une partie frontend (ou front-end). On peut lire sur différentes
ressources, « le front c'est ce que l'utilisateur final (vous) voit, et le back,
c'est ce que l'on ne voit pas », mais qu'est ce que cela veut dire?

Backend et frontend en très simplifié

Pour mieux comprendre ces deux notions, éloignons-nous des termes


techniques pendant un instant et prenons un exemple de la vie de tous les
jours : les services postaux  

Imaginons la situation suivante : je dois envoyer une lettre à une entreprise,


et cette entreprise devra me faire un courrier en retour afin d’apporter une
réponse à ma demande.

Dans cet exemple, la lettre que je dois envoyer représente ma recherche


d’information sur un site internet (ou application web).

Nous allons maintenant décomposer les différentes actions qui découlent


de l’envoi de ma lettre et toutes les étapes nécessaires depuis son envoi
jusqu’à la réception de la réponse de l’entreprise à ma demande.

Plusieurs acteurs seront impliqués au fil des étapes :

 le facteur
 la boîte aux lettres
 le centre de tri
 le guichet
 les tiroirs dans lesquels sont rangés le courrier
 le courrier

Décomposons maintenant les étapes du processus :


Lorsque j’envoie ma lettre par la poste, toutes les interactions physiques
que je vais avoir tant que le courrier est entre mes mains représentent la
partie front-end de l’entreprise.

A contrario, toute la partie acheminement et traitement de mon courrier


(dans laquelle je ne suis pas directement impliqué) représente la partie
back-end de l’entreprise. 
Maintenant vous devriez mieux comprendre la phrase que l’on citait plus
haut à savoir “Le front c’est ce que l’on voit et le back c’est ce que l’on ne
voit pas” : je vois mon courrier lorsque je le poste, je vois la boîte aux
lettres, je vois le facteur, cela représente la partie front-end, mais lorsque
mon courrier est trié, stocké, en phase d’acheminement, etc… et bien je ne
le vois pas, cela représente la partie back-end de l’organisation.

Et concrètement pour une application ou un site web

Les mêmes concepts se retrouvent dans le cycle de vie d’un site web ou
d’une application :

 Je vois le site que je consulte. Pour interagir avec le site, je clique sur des
liens, ou je rempli des formulaires que je vois, c’est le front-end.
 Une fois que mon action de clique est terminée, mon site ou application
travaille en autonomie : il reçoit ma demande, cherche l’information que j’ai
demandée (pour cela il va consulter la base de données et
analyser/sécuriser la donnée), puis me la renvoie, c’est la partie backend, 
 Une fois que le backend à renvoyer l’information, je peux de nouveau la
consulter et interagir avec, je suis de nouveau sur le front-end.

On se rend bien compte ici que ces deux facettes d’un site ou d’une
application sont essentielles (au même titre que le centre de tri et le facteur
dans les services postaux), l’un ne peut aller sans l’autre et, comme dans
les services postaux, ce n’est pas la même personne qui distribue le
courrier et qui tri ce dernier. 

De la même façon lorsque l’on développe une application ou un site


internet, nous avons besoin d’un développeur front-end et un développeur
backend.

Pour aller encore plus loin dans la comparaison…

Si on voulait aller encore plus loin, on pourrait parler de sécurisation ou de


performance :

De la même façon que La Poste dispose de différents services pour


accompagner l’envoi de ma lettre (recommandé, colissimo en 24h, etc…)
qui représentent des cheminements un peu différents sur la partie backend
du processus; sur mon site web, je peux varier les performances et la
sécurisation de mes actions via une programmation un peu différente de
mon backend.
Dans une application par exemple, vous avez bien souvent la possibilité de
vous enregistrer sur le site en saisissant une adresse email et un mot de
passe, pour ensuite accéder à un espace privé et personnalisé. Ici, le
remplissage du formulaire représente la partie frontend : vous visualiser
l’action. Tandis que la sécurisation de votre compte, elle, représente le
backend : vous ne pouvez pas percevoir, visuellement, que votre compte
est protégé, pourtant, c’est bien le cas. Tout se fait en backend.

Nous pourrions faire le même parallèle avec les envois chronopost 24h et
les performances de traitement d’un site par exemple.

Et les “langages” dans tout ça ?

L’entreprise La Poste vous permet d’envoyer vos courriers, mais vous


pourriez également un choisir une autre entreprise (DHL, Fedex, etc…).
Chacun possède ses propres services, ses méthodes en frontend, et en
backend.

Et bien dans le développement, c’est pareil mais on appellera cela des


langages. Par exemple, pour développer en backend, vous pouvez utiliser
PHP, Java, Ruby, etc… En revanche, pour développer la partie frontend on
se dirigera essentiellement sur du Javascript, HTML ou CSS.

On s’arrête là pour aujourd’hui, vous avez déjà compris beaucoup de


choses.

Je reviendrai plus en détail sur les langages dans mon prochain article 😉

À très vite !

+++++++++++++++++++++++++++++++++++++++++++++++++

Qu’est-ce que le développement


Back-End ?
Pour commencer je vous encourage aller voir mon post sur le fonctionnement d’un site
Web pour mieux comprendre ce post sur le développement Back-End.
Alors, qu’est-ce que le développement Back-End ?
Le Back-End, c’est la partie du code qui est exécutée par le serveur, il s’agît du travail
qu’il réalise sur les pages Web des sites dynamiques avant de les envoyer au client.

Langage Serveur
Le travail du serveur sera codé dans un langage propre à lui : le langage serveur.

C’est avec ce langage que notre serveur pourra décider et générer des pages Web à
renvoyer à chaque client.
Il est important de comprendre que le résultat final renvoyé au client est toujours une
page composée uniquement d’HTML, de CSS et de Javascript.
Il existe de nombreux langages
serveurs : PHP, Java, Python, Ruby , NodeJs, ASP.Net etc.
Alors lequel choisir ? Quel est le meilleur langage serveur ?
En fait, tout dépend de vos connaissances en programmation. Si vous avez déjà
manipulé un de ces langages, il sera alors plus rapide d’avancer avec.
Bref, il n’y a pas de meilleur choix. Je vous recommande le langage pour lequel vous
serez certains d’avoir quelqu’un pour vous aider.

PHP
Dans la formation développeur Web, j’ai décidé de vous faire débuter avec PHP.
Pourquoi PHP?

 Très grande communauté : ce qui peut vous aider rapidement sur Internet si
vous avez des problèmes
 Facile à utiliser : idéal pour les débutants
 WordPress est en PHP : ce qui peut être bien utile si vous voulez
personnaliser vos sites WordPress.

Envie d’apprendre à développer avec le langage PHP ? Suivez le cours « créer un


formulaire de contact » !
Les bases de données
Quel que soit le site Web dynamique que l’on veut faire, on aura souvent besoin
d’enregistrer des informations pour les réutiliser plus tard. Par exemple, on peut avoir
besoin de stocker les données concernant les utilisateurs de notre site.
Notre serveur devra alors utiliser une base de données. C’est un ensemble de fichiers
dans lequel les données sont stockées de façon organisée.
Il y a plusieurs systèmes de bases de données : MySQL, Oracle, Microsoft SQL Server…

Dans la formation développeur Web, j’ai choisi d’utiliser MySQL car c’est de loin le plus
utilisé parmi ceux qui sont gratuits.
Pour accéder aux données, notre serveur utilisera encore un autre langage :
le SQL (Search Query Language) qui fonctionne avec des requêtes.

Exemple de requête SQL: Récupère la liste de tous les utilisateurs qui se sont inscrit le
mois dernier.
Retrouvez ce cours complet en ligne et découvrez les bases de données et le langage
SQL.

Formation Développeur Web


Voilà, j’espère que vous avez maintenant une meilleure vue d’ensemble sur
le développement Web.

Si vous voulez maintenant passer à l’action et que vous êtes motivés pour devenir


développeur Web alors rejoignez-moi dans la formation sur le développement Web.

++++++++++++++++++++++++

Le développeur Front-End
Lorsque l'on parle de «Front-End», il s'agit finalement des éléments du site que l'on
voit à l'écran et avec lesquels on peut interagir. Ces éléments sont composés de
HTML, CSS et de Javascript contrôlés par le navigateur web de l'utilisateur.

Les champs de compétence du Front-End peuvent être séparer en deux :


- Le design
- Le développement HTML, CSS, Javascript
Le design est traditionnellement réalisé par un web designer qui produit des maquettes
graphiques à l'aide de Photoshop ou Fireworks. Cependant de plus en plus de web
designers ont franchi la barrière et savent coder en HTML et CSS. Dans certains cas ils
sont aussi capables de produire du Javascript.
Auparavant lorsque l'on parlait de développeur, on sous-entendait développeur Back-
End. Maintenant on s'aperçoit que certains web designers possèdent également
des compétences en développement.
Le développeur Front-End est donc une personne qui peut être issue du milieu du
web design en ayant renforcé ses connaissances en développement. Il peut aussi être
un développeur qui a choisi de se spécialiser dans les technologies et langages du
Front-End tels que :
- HTML
- CSS
- Javascript
- jQuery
jQuery est un framework javascript, pour simplifier c'est une bibliothèque Javascript
qui permet de coder plus vite et plus simplement.
Il existe de nombreuses bibliothèques Javascript plus ou moins complexes et adaptées
à différents usages.
Maintenant, pour que le site prenne vie et que le travail du développeur Front-End soit
complété, c'est au tour du développeur Back-End d'intervenir !

Le développeur Back-End
Le Back-End, c'est un peu comme la partie immergée de l'iceberg. Elle est invisible
pour les visiteurs mais représente une grande partie du développement d'un projet web.
Sans elle, le site web reste une coquille vide.
On peut décomposer le Back-End en trois parties essentielles :
- Un serveur (ou hébergement web)
- Une application (en l’occurrence le site web)
- Une base de données (ou l'on stocke les données de l'application)
Le serveur est comme un disque dur accessible 24 heures sur 24, sur lequel les pages
du site web sont enregistrées.
Pour pouvoir conserver vos mots de passe, vos préférences, votre panier d'achat que
vous avez saisi grâce aux éléments de Front-End, il est nécessaire de les enregistrer
dans une base de données. La base de données est comparable à un grand tableau avec
des colonnes contenant par exemple «nom», «prénom», «mot de passe», «achat en
cours». Lors de votre inscription sur un site, votre profil est enregistré dans ce tableau.
Pour pouvoir conserver, traiter, modifier ces données et fournir des informations à jour
sur un site internet (comme des actualités, des fiches produits, des images, des vidéos),
le développeur Back-End va utiliser des langages de programmation «dynamique».
Les langages les plus utilisés sont PHP, Ruby, Python, SQL. Souvent pour rendre le
code plus clair, facilement modifiable et plus simple à maintenir en équipe, le
développeur travaille avec des frameworks tels que Cake PHP, Symfony ou Code
Igniter.
Enfin, le développeur Back-End met également en place et configure le serveur qui
accueillera le site lui-même.

Le cas WordPress
WordPress est un outil de gestion de contenu (ou CMS) qui permet d'administrer
simplement le contenu d'un site web sans pour autant être expert en développement
Back-End.
WordPress est un framework PHP qui est simple à customiser. Le web designer
n'ayant pas de grandes compétences en codage, pourra facilement créer une maquette
graphique HTML, CSS voire Javascript et l'implanter rapidement dans WordPress. Le
site sera alors livrable au client dans la mesure où les fonctionnalités attendues restent
simples !
Dans ce cas, on peut s'affranchir d'un développeur Back-End.

Conclusion
Le développeur Front-End et Back-End sont deux profils qui doivent travailler
en étroite collaboration. Cette collaboration est indispensable pour mener au mieux
un projet web. L'aspect visuel et ergonomique doivent être pensés en même temps que
l'aspect Back-End du site web. Chacun des aspects ayant des contraintes et des
normes qu'il est important de considérer en amont, avant de se lancer tête baissée dans
un projet.
 

Un petit schéma pour symboliser tout cela, ça vous aide ?! 


+++++++++++++++++++++++++++++++++++++++++++++++++++++

Qu’est-ce que signifie front-end ou back-end lors d’un projet de conception web ou


mobile ? Si ces deux termes reviennent très souvent avant même la phase de
développement, c’est qu’ils sont particulièrement importants dans la construction du
projet digital.

Prenons l’exemple de la conception d’une application web. Imaginons que l’on


souhaiterait développer une application d’échanges et de partages de fichiers BtoB,
entre un expert-comptable, par exemple, et un entrepreneur. Pour fonctionner, notre
application doit avoir besoin d’une interface utilisateur, à destination des clients de
l’expert-comptable, et d’une interface administrateur, laquelle sera l’interface de
l’expert-comptable.

Pour développer une telle application, vous allez avoir besoin d’au moins deux types
de développeurs web: le développeur front-end, et le développeur back-end. Pour
comprendre où ces derniers vont intervenir, et ce que représente le back-end et le
front-end dans un projet web, restons sur notre exemple.

Le développement front-end : conception


de l’interface graphique utilisateur
Les deux interfaces sur lesquelles interagiront l’expert-comptable et le client de
l’expert sont considérées comme du front-end. En effet, il s’agit de la partie visible de
l’application, destinée à être manipulée par un tiers.

Il ne faut donc pas confondre « front-end » et « back-end » avec « interface client »


et « panneau administrateur ». Dans la conception graphique du premier comme du
second, ce sont les compétences d’un développeur front-end qui seront nécessaires.

En effet, celui-ci va mettre en place les éléments graphiques qui permettront à


l’utilisateur final de se repérer sur l’interface et la prendre facilement en mains. Il va
également développer les interactions, les animations, le responsive design,… Il
travaillera conjointement avec au moins un webdesigner et, idéalement, un expert
UX afin de livrer une interface ergonomique et ludique.

Les compétences du développeur front-end sont, au minimum :

 HTML
 CSS
 Javascript
Il peut aussi se reposer sur les frameworks suivants :

 jQuery
 Angular
 Bootstrap
 Foundation
 Semantic UI
 Pure…
La liste est très loin d’être exhaustive. Il existe un grand nombre de bibliothèques et
de frameworks (que vous pouvez consulter sur le guide de l’Open Source), certains
possédant des spécificités qui font leur réputation : légèreté, ergonomie UX, type de
projet,… Dans tous les cas, le développement front-end d’une application
demandera généralement le choix d’un framework dans sa conception, pour des
questions de coûts, de temps et de sécurité.

Toujours dans le même cadre, nous vous invitons à jeter un coup d’œil sur cette
vidéo :

Le développement back-end : clé de voûte


de l’application web
Une belle interface reste une coquille vide si une équipe de développement back-end
n’intervient pas sur notre application web. En accord avec le cahier des charges,
l’équipe de développeurs back-end va travailler au développement des
fonctionnalités de l’application mobile.
Le travail du dev back-end est invisible pour l’utilisateur final, mais sans son
intervention, pas d’application. La partie back-end va construire, développer et mettre
en interaction trois piliers essentiels au fonctionnement de l’application :

 Le serveur d’hébergement
 L’application web
 La base de données
Le serveur est le disque dur sur lequel seront enregistrées votre application, partie
front-end. Tous les fichiers composant les pages, le design, les éléments qui
construisent la partie visible de votre application.

La base de données, quant à elle, est construite par le développeur back-end de


sorte à conserver dans des tableaux spécifiques toutes les données nécessaires au
fonctionnement de l’application (ID d’un utilisateur, droits d’utilisateurs, stockage des
mots de passe, etc.).

Pour que la base de données puisse être mise à jour, modifiée, ou que des éléments
(nouvel utilisateur, par exemple) puissent s’intégrer à la base pré-existante, le
développeur back-end va utiliser des langages dynamiques, lesquels vont connecter
la base de données avec l’application.

Pour cela, le développeur back-end va avoir tendance à utiliser les langages :

 PHP
 Ruby
 Python
 SQL
Pour les mêmes raisons de coûts, rapidités et rentabilités que le développeur front-
end, le dev back-end utilise généralement des frameworks tels que :

 Symfony
 django
 Ruby on Rails
 Angular
 Meteor
Si, traditionnellement, on attribue le développement PHP au développement du back-
end, cette tendance tend à changer, notamment grâce à l’essor d’Angular. Ainsi, il
n’est pas impossible pour un développeur back-end de s’orienter vers du
développement en js. Ces profils sont d’ailleurs très recherchés.

Voici une vidéo explicative qui illustrera mieux le développement back-end :


Comment collaborent le développeur back-
end et front-end ?
Nous avons vu, globalement, comment fonctionnaient chacune des parties d’un
projet applicatif, web ou mobile. On sait que le front-end concernera donc la partie
visible et interactive, mais qu’elle repose sur le travail fait sur la partie immergée de
l’iceberg, par le développeur back-end.

Concrètement, comment vont collaborer le développeur back-end et front-end ?


Imaginons que, sur l’interface administrateur de notre application, l’expert-comptable
veuille pouvoir créer un nouveau compte client.

Il va devoir suivre le chemin suivant, depuis l’application :

 Se connecter
 Accéder à la page d’ajout d’un utilisateur
 Remplir un formulaire de création d’un nouvel utilisateur
 Le valider
À tous ces moments, l’expert-comptable aura fait appel au travail fait à la fois sur le
back-end que sur le front-end. En effet, pour se connecter, l’utilisateur final va devoir
interagir avec un formulaire (front-end), lequel interrogera la base de données pour
vérifier l’exactitude des informations qu’il y entrera (back-end).

Il se dirigera ensuite vers la page utilisateur et interagira avec celle-ci pour ouvrir le
formulaire de création d’un nouvel utilisateur (front-end). Il remplira alors le formulaire
de création (front-end), puis, en le validant, va permettre au formulaire de se créer
une nouvelle entrée dans la base de données, qui permettra à son client de se
connecter sur l’interface utilisateur (back-end).

L’équipe back-end et l’équipe front-end peuvent travailler ensemble de différentes


façons. Le front-end peut se consacrer à l’UI (interface utilisateur) exclusivement sur
la base du développement back-end, lequel aura déjà construit toutes les
interactions avec la base de données.

Dans d’autres cas, le développement back-end se consacrera au développement


fonctionnel de la base de données. Ces données sont ensuite transmises aux
développeurs front-end qui utiliseront ces appels vers la base de données dans leur
code.

En conclusion, la ligne est parfois fine, dans les faits, entre le développeur front-end
et le développeur back-end. Il n’est pas rare que l’un maîtrise une partie du terrain de
l’autre, tant ces deux aspects du développement sont liés. Il existe, par ailleurs une
troisième catégorie de développeurs, capables d’appliquer ses compétences à la fois
sur la partie back-end et front-end : le développeur full-stack.

Le profil du développeur full-stack est d’autant plus recherché par les entreprises et
agences qu’il a une vision plus globale du projet et un large spectre de compétences.
Il peut d’ailleurs faire un excellent consultant, du fait de sa capacité à se mettre dans
la peau d’un développeur front-end ou back-end selon les besoins.

À la recherche d’un emploi dans le développement ? Trouvez la perle rare avec


LesJeudis !

 À propos
 Articles récents

Team LesLeudis
Lesjeudis est fier de compter sur une équipe multidisciplinaire de professionnels
techniques et du marketing. Ensemble, nous couvrons de vastes domaines
informatiques et de développement, ainsi que du marketing et du numérique. De
Rails à .net, de la conception graphique à l’interface utilisateur et au référencement,
vous bénéficierez de nos connaissances et de notre expertise dans chaque article
que nous écrivons dans ce blog.

Catégorie: Design, Développement, Top content, Web

Articles dans la même thématique


Comment se former au métier de développeur informatique ?

Le guide ultime pour bien préparer son stage informatique

5 outils pour créer une infographie en ligne


Previous Post:« 10 compétences essentielles pour décrocher votre 1er job
de développeur front-end

Next Post:Pourquoi apprendre Ruby on Rails ? »

Reader Interactions
Comments
1. Seb
03/09/2019 at 19:01
Je pense être tombé sur une coquille dans cette partie :

“Nous avons vu, globalement, comment fonctionnaient chacune des parties d’un projet
applicatif, web ou mobile. On sait que le front-end concernera donc la partie visible et
interactive, mais qu’elle repose sur le travail fait sur la partie immergée de l’iceberg, par le
développeur front-end.”

Le dernier mot est plutôt “back-end” au lieu de “front-end”.

2. Les Jeudis
11/03/2020 at 10:25
merci Seb, c’est fixé maintenant : )

Laisser un commentaire
Votre adresse de messagerie ne sera pas publiée.

Commentaire

Nom

Adresse de messagerie

Site web

Laisser un commentaire
Primary Sidebar
Rechercher
Search
Search this website
Nos meilleurs articles

Dix pratiques essentielles pour améliorer la cybersécurité de votre entreprise


24/07/2019

MOA / MOE : Quelles sont les différences ?


07/12/2018

Quel système de gestion de contenu choisir ?


03/11/2018

Marketing digital : les 5 métiers les plus demandés en 2018


09/10/2018

Pourquoi apprendre Ruby on Rails ?


15/07/2018

Développement front-end et back-end : Quelles différences ?


13/07/2018

Les frameworks de programmation les plus populaires en France  


07/07/2018
Qu’est-ce que le DevOps et en quoi consiste ce métier  ?
02/07/2018

Catégories
 Blockchain
 Conseils
 Design
 Développement
 Digital
 E-commerce
 Evénements
 Infographie
 Interviews
 Marché de l'emploi
 Marketing
 Mobile
 Pro
 Réseaux et Systèmes
 SEO
 Top content
 UX
 Web

Footer
Nos Categories

 Blockchain (6)

 Conseils (34)

 Design (51)

 Développement (127)

 Digital (347)

 E-commerce (11)

 Evénements (26)

 Infographie (1)

 Interviews (30)

 Marché de l'emploi (27)
 Marketing (98)

 Mobile (5)

 Pro (58)

 Réseaux et Systèmes (11)

 SEO (41)

 Top content (10)

 UX (2)

 Web (172)
Candidats

 Emploi par région


 Emploi par métier
 Emploi par technologie
 Emploi par industrie
 Emploi par type de contrat
 Tous les emplois
 Fiches métiers informatiques
Nos Services

 S’inscrire
 Annonces
 Évènements
 Tests
 Magazine
 Salon LesJeudis
Support

 Nous contacter
 Vous êtes recruteur ?
A Propos

 Conditions générales d’utilisation


 Politique de confidentialité
 Droit d’accès aux données personnelles
Social

 Facebook
 Twitter
 Linkedin

© 2018 Groupe Les Jeudis


+++++++++++++++++++++++++++++++++++++++++++

Quel langage utiliser pour votre


back-end ?
Guillaume Hoarau
Follow
Sep 26, 2019 · 4 min read

#BACKEND #DATA #PYTHON #CSHARP #JAVASCRIPT


#DEVELOPPEMENT #INFORMATIQUE

Le choix d’un langage pour le backend est critique car il va


déterminer à la fois l’effort de développement et la
maintenabilité d’un projet. Il doit donc s’inscrire dans une vision
à long terme. Actuellement, 3 langages dominent le marché :

Le C#
C# est un langage de programmation qui contient une syntaxe
très expressive. Il a été développé et conçu par Microsoft
Corporation en 2002. Les applications construites à l’aide de C#
s’exécutent sur le framework .Net. Ce langage a rectifié de
nombreuses complexités de C++ et fournit de nombreuses
fonctionnalités avancées.

Il prend en charge le concept d’encapsulation, d’héritage, de


polymorphisme car c’est un langage orienté objet. Il est
statiquement typé.

Le JavaScript
JavaScript est l’un des langages de programmation les plus
populaires et les plus utilisés au monde. Conçu par Brendan
Einch en 1995. Sa croissance est plus rapide que tout autre
langage de programmation. Les grandes entreprises telles que
Netflix, Walmart, PayPal construisent leurs applications
internes avec ce langage.

C’est un langage approprié à la fois pour du développement


back-end et front-end.

Le Python
Python est un langage polyvalent, interactif, orienté objet et de
haut niveau. Il a été créé par Guido van Rossum en 1991.
Comme Perl, le fichier texte ASCII Python est également
disponible sous la licence GPL (Antilope General Public
License). Python se veut extrêmement clair. Il utilise souvent
des mots-clés en anglais partout où différents langages utilisent
la ponctuation, et il comporte moins de constructions
syntaxiques que les autres langages.

Différence entre Javascript vs C#


JavaScript propose tellement de didacticiels, de documents et
d’aides qu’il est facile à apprendre. C# est nettement plus
complexe et vaste. L’apprentissage peut donc effrayer à première
vue. Cependant, sa syntaxe est plus cohérente que celle de
JavaScript.

La communauté Javascript est plus large que celle de C# mais


celle de C# est composée de plus de professionnels. JavaScript
propose des milliers de bibliothèques gratuites et un support
important de la part de la communauté, tandis que C# est très
limité car il est principalement basé sur Windows.
Javascript évolue plus vite que C# mais les modifications sont
moins vérifiées, ceci implique une qualité variable.

Par exemple TypeScript est une amélioration qui a apporté à


JavaScript de nombreuses fonctionnalités clés manquantes qui
n’existaient pas dans l’implémentation « Vanilla ».

C# est principalement orienté vers des applications desktop


alors que Javascript sera plus adapté à du développement web.

Différence entre C# et Python


Python et C# sont tous deux des langages orientés objet. C# est
un langage compilé statiquement. Python est un langage de
script de haut niveau, interactif non compilé. Python se veut
extrêmement clair. Python est un langage interprété
dynamiquement. Python est basé sur des initiatives
d’approvisionnement ouvert et une implication de la
communauté. La prise en main de Python est extrêmement
rapide mais son emploi est surtout dédié à des usages
scientifiques.

C# sera plus intuitif pour des personnes familiarisées avec


l’écosystème Microsoft tandis que Python est agnostique ; il
pourra être lancé sur n’importe quel environnement.

Différences entre Python et JavaScript


Python est un langage de programmation de haut niveau
interprété avec une sémantique dynamique et une
programmation orientée objet conçue pour être facile à lire et à
mettre en œuvre. C’est un langage de script tel que Perl / ruby et
utilisé pour créer des applications Web. Java-Script est un
langage de programmation orienté objet qui vous permet de
créer des pages Web dynamiques et normalisé dans la
spécification du langage ECMAScript. Java-Script prend en
charge différents paradigmes de programmation en tant que
programmation orientée objet, fonctionnelle et impérative, mais
pas la programmation procédurale.

Javascript et Python sont deux langages très similaires c’est


pourquoi ils peuvent facilement être utilisés pour les mêmes cas
d’usages. Le choix dépendra surtout de l’aisance de l’équipe de
développement avec l’un ou l’autre.
Tableau comparatif. Python vs JavaScript vs C# — Crédit Futurs.io

Notre vision

Chez Futurs.io nous aimons la simplicité c’est pourquoi nous


avons fait le choix de ne pas multiplier les langages. De ce fait
comme nous avions l’ambition de proposer une application
entièrement basée sur le web, et donc avec un front en
Javascript, nous l’avons également utilisé pour le back. Cela
nous a permis d’embarquer rapidement les dernières
innovations telles que la blockchain dans notre projet de
traçabilité PURChain.

+++++++++++++++++++++++++++++++++++++++++++++++++

Devenir développeur back end


Le développeur back-end travaille exclusivement sur la partie invisible
d’un site web, ce qu’on appelle le back-office. Il gère les interactions entre
applications, serveur, bases de données et protocoles numériques.
L’objectif est de créer des sites dynamiques et interactifs. A l’opposé se
situe le développeur front-end, qui correspond à toute la partie visible par
l’utilisateur.

Les missions du développeur back-end freelance


Le développeur back-end gère toute la partie architecture technique, base
données et application web. Il peut également être amené à assurer la
configuration et la maintenance du serveur. Le développeur doit être
capable de mener une analyse technique pour bien prendre en compte
les besoins du client. Il devra ensuite concevoir la structure de la base de
données et définir l’architecture du site. Viendra ensuite la phase de
développement avec le choix d’un langage adapté. Pour finir, le
développeur devra réaliser des tests et rédiger la documentation
technique et fonctionnelle. On peut également lui demander d’assurer la
maintenance ou l’évolution d’un site.

Les qualités pour être un bon développeur back-end


freelance
Le développeur back-end doit bien sûr maîtriser les bases de données
(SQL) et les langages de programmation dynamiques associés :

 PHP
 Python
 Ruby
 JQuery
 Java

Les webservices et le fonctionnement d’une API n’ont pas de secret pour


lui. La connaissance des frameworks devient de plus en plus
indispensable (Code Igniter, Symphony2, CakePHP), leur utilisation
permettant de gagner beaucoup de temps. La maîtrise des techniques
d’optimisation et d’intégration de pages dynamiques
HTML5/CSS/Javascript sont un plus.

Une veille technologique permanente est nécessaire pour suivre


l’évolution des techniques et des langages, notamment à destination des
mobiles.
Le développeur back-end doit savoir travailler en toute autonomie,
respecter les délais mais également dialoguer efficacement avec le client
et ses équipes, notamment pour ce qui concerne le front-end. Une
certaine polyvalence dans les deux domaines peut quelquefois être
recherchée.
Les formations et débouchés du développeur back-end
freelance
Des études de second cycle en informatique sont indispensables : école
d’ingénieur, université, école d’informatique. Il s’agit d’acquérir les
connaissances techniques mais aussi humaines et transverses pour être
capable de mener à bien des projets de A à Z.  Des formations en
apprentissage ou par le biais de la Web@cadémie peuvent constituer un
premier pas dans ce métier.

Le salaire du développeur back-end freelance


Les salaires annuels moyens se situent entre 30 000 et 40 000 €. Le
développeur freelance devra donc chiffrer ses prestations de façon à se
situer dans cette fourchette. Pour des prestations très pointues,
notamment pour de grandes entreprises, ces tarifs pourront être
largement majorés.

Avec ses 150 000 prestataires répartis dans 115 spécialités du web Codeur.com
vous aide à trouver facilement et gratuitement un prestataire disponible pour réaliser
tous vos projets web.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++

Vous aimerez peut-être aussi