Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Django 1.9 disponible avec de nouvelles fonctionnalités
Parmi lesquelles la validation des mots de passe et le support des tests en parallèle

Le , par Victor Vincent

0PARTAGES

3  0 
La nouvelle version du framework Web Diango, basé sur le langage Python est maintenant disponible. Dans cette nouvelle version, l’équipe de développement du framework met en avant plusieurs nouvelles fonctionnalités. Diango 1.9 requiert les versions 2.7, 3.4 ou 3.5 de Python pour fonctionner, cependant l’équipe de développement du framework recommande exclusivement aux développeurs et déclare ne supporter que les dernières versions de chaque série du langage. Pour rappel, le support des versions 3.2 et 3.3 a été supprimé depuis la version 1.8 de Django.
Parmi les nouvelles fonctionnalités, celles plus mises en avant par l’équipe de Django et présentées comme majeures sont au nombre de cinq.

Exécution d’actions après un commit d’une transaction
La nouvelle fonction on_commit() permet d’effectuer des actions après avoir déclenché une transaction de base de données. Cela peut être particulièrement intéressant pour l’envoi de messages de notification, la création de tâches en attente ou pour invalider les caches par exemple. Cette fonctionnalité est disponible dans le package django-transaction-hooks.

Validation de mots de passe
Django offre maintenant la fonctionnalité de validation des mots de passe pour prévenir contre l’utilisation de mots de passe faibles d’un point de vue sécuritaire par les utilisateurs. La validation est intégrée au changement de mot de passe, au rechargement de formulaires et peut-être facilement intégrée dans n’importe quelle partie du code. La validation se fait en configurant un ou plusieurs valideurs à travers le paramètre AUTH_PASSWORD_VALIDATORS. Quatre valideurs sont utilisés par le framework dans sa version 1.9 à savoir celui qui exige à l’utilisateur une certaine longueur pour les mots de passe, celui qui compare le mot de passe aux attributs de l’utilisateur comme son nom et qui génère une erreur en cas d’égalité, celui qui permet de s’assurer qu’un mot de passe utilisateur ne soit pas composé uniquement de chiffres et celui qui vérifie que le mot n’est pas un mot de passe trop évident ou trop commun. Il est possible de combiner plusieurs valideurs pour obtenir des niveaux de sécurité des mots de passe avancés. Certains de ces valideurs donnent la possibilité au programmeur de personnaliser les configurations pour répondre à des besoins spécifiques. Par exemple, le développeur peut spécifier une liste des mots passe qu’il qualifie de communs pour interdire leur usage. Chaque valideur procure une aide sous forme de texte explicatif expliquant à l’utilisateur ce qu’il est obligatoire de renseigner. Par défaut, aucune validation sur les mots de passe n’est effectuée par le framework à la création d’un nouveau projet. Pour les mettre en œuvre, il faut ajouter une ligne contenant AUTH_PASSWORD_VALIDATORS comme dans le bout de code qui suit.


Le support des Mixins pour les vues basées sur les classes
La nouvelle version du Framework Django apporte le support des Mixins AccessMixin, LoginRequiredMixin, PermissionRequiredMixin et UserPassesTestMixin permettant d’offrir les fonctionnalités de django.contrib.auth.decorators aux vues basées sur les classes. Les Mixins ont été inspirés du projet django-braces mais il existe cependant quelques différences d’implémentation entre Django et le projet django-braces. Dans Django :

    l’attribut raise_exception ne peut prendre que les valeurs true ou false et les exceptions personnalisées ne sont pas supportées ;
  • la méthode handle_no_permission() ne requiert pas d’argument. La requête courante est obtenue en faisant self.request ;
  • la fonction test_func() de UserPassesTestMixin ne prend pas l’argument user. L’utilisateur courant est obtenu en faisant self.request.user ;
  • l’attribut permission_required peut être une chaine de caractères ou une liste de chaines de caractères qui doivent être renseignées pour autoriser l’accès ;
  • le nouvel attribut permission_denied_message permet d’associer un message à l’exception PermissionDenied.

Nouveau style pour contrib.admin
L’administrateur à la possibilité de définir un design moderne avec de nouvelles icônes SVG qui donne un rendu convivial sur les écrans HiDPI. Le nouveau style garantit une expérience utilisateur entièrement fonctionnelle avec les navigateurs YUI A-grade. Les anciens navigateurs peuvent présenter des dégradations progressives du rendu.

Exécution de tests en parallèle
La commande test supporte maintenant l’option --parallel permettant d’exécuter les tests d’un projet dans plusieurs processus en parallèle. Chaque processus possède sa propre base de données. Le programmeur doit cependant s’assurer que des cas de test différents n’ont pas accès aux mêmes ressources. Par exemple, un cas de test touchant au système de fichiers doit créer ses propres répertoires temporaires. Cette option est activée par défaut par la suite de test offerte par Django pour :

    les systèmes d’exploitation le supportant (tous sauf Windows) ;
  • les bases de données le supportant (toutes sauf Oracle).

En plus de ces fonctionnalités majeures, le framework apporte aussi d’autres fonctionnalités présentées comme mineures dont des améliorations pour django.contrib.admin, django.contrib.admindocs, django.contrib.auth, django.contrib.contenttypes, django.contrib.gis, django.contrib.postgres, django.contrib.sessions, django.contrib.sites et django.contrib.syndication.

Source : DjangoProject

Et vous ?

Que pensez-vous de cette nouvelle version de Django ?

Voir aussi

le forum Django

la rubrique Web Python (Cours, Tutoriels, FAQ, etc.)

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Aurelien Plazzotta
Membre extrêmement actif https://www.developpez.com
Le 07/12/2015 à 10:34
C'est assez curieux que les articles purement techniques n'intéressent personne. De plus en plus sur ce site (j'ai commencé à le consulter en 2003 avant de m'inscrire en 2006), seuls les articles à tendance polémique, brassant du vent ou facilement accessibles aux masses, suscitent désormais des réactions.

Pour en revenir au sujet, il n'y a pas besoin de cadriciel pour faire de l'héritage multiple (mixin en anglais américain) !
3  0 
Avatar de jedema
Membre régulier https://www.developpez.com
Le 08/12/2015 à 9:17
C'est vrai que les articles polémiques déchainent beaucoup plus les foules que ce genre d'article. Pourtant, je suis très content de consulter ce genre d'articles (sur Django) sur developpez.

Pour en revenir au sujet principal, Django est vraiment un framework exceptionnel. Pour rébondir sur ton post, rien qu'hier, j'ai remarqué que Laravel ne gérait pas du tout l'héritage de model, que ce soit en héritage abstrait comme en héritage standard.
C'est tellement frustrant de bosser avec des frameworks limités...
1  0 
Avatar de EPITECH42
Nouveau membre du Club https://www.developpez.com
Le 08/12/2015 à 15:15
Disons que les sujets plus larges touchent plus de gens et créent donc plus de réactions. Seuls les curieux sans expérience python & web (comme moi) se baladent sur ce genre d'articles sans laisser de traces (d'habitude )
1  0 
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 09/12/2015 à 15:37
Citation Envoyé par SurferIX Voir le message
lorsqu'on crée un super user, il faut un mot de passe sécurisé. C'est n'importe quoi, d'une débilité profonde à tous les niveaux. Si le type derrière le clavier est un crétin et que son mot de passe c'est "u", laissez le bon sang ! Notre devoir est de l'avertir qu'il n'est pas fiable, qu'il n'est pas sécurisé. Là, oui. Mais pas lui interdire. Je déteste cela.
C'est quelque chose qu'il faut essayer d'expliquer aux développeurs. Ceci dit, si un site Django se fait hacker à cause de mots de passe trop faibles, tous les admins et développeurs de sites Django se feront tancer par des décideurs (ceux qui paient) pour un manque de robustesse de la solution... alors qu'ils n'y sont pour rien. Et avec ces gens là, lorsque le doute s'installe, ce ne sont pas les arguments techniques qui vont "rassurer". Alors si être un peu coercitif peut éviter cela, ce n'est pas une mauvaise chose.

- W
0  0 
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 09/12/2015 à 20:26
Citation Envoyé par SurferIX Voir le message
Si tous les plus gros sites, google, facebook et yahoo y compris, autorisent des mots de passe faibles et ne font qu'un avertissement, c'est que l'avertissement est suffisamment efficace pour faire réfléchir.
Si on trouve leur mot de passe ce ne seront leurs données personnelles qui pourront être affectées.
Dans le cas de la base de donnée d'une application Web, ce seront celles de n'importe qui....
On ne parle pas vraiment de la même chose.

Citation Envoyé par SurferIX Voir le message
Et quand tu parle de se faire hacker, c'est uniquement avoir des droits admin sur la base de données, donc pouvoir faire n'importe quoi en tant qu'admin sur la base de données.
Une sauvegarde efficace suffira à pouvoir tout restaurer.
Encore faut-il détecter l'intrusion... Si çà prend quelques jours, les backups ne servent à rien: si on repart de J-n, il va falloir expliquer aux utilisateurs que tout le boulot fait ces n derniers jours est à refaire... Ils vont aimer... surtout s'il s'agit de commandes, d'ordres de fabrication, de livraisons, de factures, de virements,.... Un truc qui peut couler une boîte et mettre du monde au chômage du jour au lendemain...

- W
0  0 
Avatar de dukoid
Membre émérite https://www.developpez.com
Le 10/12/2015 à 19:36
Citation Envoyé par SurferIX Voir le message
Une sauvegarde efficace suffira à pouvoir tout restaurer.
oui bien sur, et perdre toutes les données depuis le jour du hack.
j'espere qu'à l'entreprise ou tu bosses tu va pas faire ça
"bonjour, patron ça va ? au fait, j'ai remis la sauvegarde d'il y a 3 jours à cause d'un hack" voilà bon c'est pas grave on as juste perdus toutes les données durant cette période"
0  0 
Avatar de dukoid
Membre émérite https://www.developpez.com
Le 10/12/2015 à 19:52
Citation Envoyé par SurferIX Voir le message
aussi prétentieuses qu'incompétentes
toujours des insultes .. ça deviens gave là. faut te calmer, faire du yoga, aller courir . je ne sais pas mais fais quelque chose
0  0 
Avatar de dlewin
Membre averti https://www.developpez.com
Le 08/02/2016 à 15:25
Citation Envoyé par Aurelien Plazzotta Voir le message
C'est assez curieux que les articles purement techniques n'intéressent personne. De plus en plus sur ce site (j'ai commencé à le consulter en 2003 avant de m'inscrire en 2006), seuls les articles à tendance polémique, brassant du vent ou facilement accessibles aux masses, suscitent désormais des réactions.
Bon sang que tu as raison, est-ce par facilité intellectuelle je ne sais: mais c'est factuel.

Citation Envoyé par Aurelien Plazzotta Voir le message
Pour en revenir au sujet, il n'y a pas besoin de cadriciel pour faire de l'héritage multiple (mixin en anglais américain)
Arf Python le fait très bien tout seul !
0  0