Regardez Django .
Code Python. Un langage de modèle qui permet certaines des mêmes fonctionnalités que PHP - une syntaxe légèrement différente.
Le modèle est dissocié des fonctions d'affichage ("règles métier") et dissocié de la présentation. Ceci est appliqué dans tout Django.
L'une des questions courantes est "pourquoi ne puis-je pas faire -- quelque chose de fou comme PHP -- dans le template Django?" La réponse est que la présentation n'est pas un traitement. Faites votre traitement dans les fonctions de vue Django. Afficher les résultats au format HTML dans le modèle.
De plus, Django a une couche ORM pour vous éloigner des petites considérations SQL. MySQL ou PostgreSQL sont plus ou moins équivalents depuis Django.
Modifier
"Maturité" signifie beaucoup de choses. Vous avez spécifiquement mentionné les personnes qualifiées comme un signe de maturité.
Django est du pur Python. Si vous pouvez trouver des gens Python, ils peuvent apprendre Django en quelques jours. Ils n'ont qu'à faire les tutoriels.
-
Un site propulsé par Django est généralement Apache + un peu de colle + Django. La colle peut être mod_wsgi ou mod_python ou mod_fastcgi. Il faut gérer cette configuration avec précaution car il y a plusieurs parties mobiles. Ceci, cependant, est le même problème de configuration Apache que vous avez avec PHP -- rien de nouveau ici.
-
Un site Django possède une ou plusieurs instances de serveur Django, chacune avec un fichier de paramètres, un mappage d'URL et un nombre quelconque d'applications. Python pur à ce stade.
-
Une application Django a des mappages d'URL, un modèle et des vues. Tout pur Python. Unité testée avec les extensions Django du propre cadre de test d'unité interne de Python.
-
Le modèle utilise une couche ORM. C'est peut-être la chose la plus déroutante de Django. Les gens conçoivent parfois des modèles très étranges parce qu'ils pensent soit trop génériques de haut niveau, soit ils pensent trop en SQL. Django est un terrain d'entente principalement orienté objet avec quelques considérations SQL. Obtenez ceci, et vous êtes imparable.
-
Une application Django peut avoir des modèles, qui sont dans leur propre langage de modèle. Ce serait à peu près la seule chose non-Python qui présente beaucoup d'intérêt. Vous voudrez peut-être ajouter des balises personnalisées -- pur Python.
-
Vous aurez probablement JavaScript (également vrai pour PHP et tous les autres frameworks d'applications Web). Rien de nouveau ici.
-
Étant donné que l'application d'administration de Django gère automatiquement le traitement CRUD de base, vous n'avez pas à écrire ceci. Vous êtes libre d'écrire tous les éléments transactionnels que vous souhaitez. Mais vous n'êtes pas obligé. Cela vous mène à un hybride très, très puissant.
-
Vous écrivez quelques transactions complexes et critiques. Python pur, BTW.
-
Vous n'écrivez aucune des transactions stupides de maintenance de table. Aucun code n'est supérieur à Python ou PHP.
-
Une fois que vous vous êtes familiarisé avec le moteur de modèles et les CSS, vous pouvez personnaliser l'interface d'administration pour qu'elle ressemble à tout ce que vous voulez. C'est du HTML/CSS, pas de Python ni de PHP.
-
Ligne de fond. La plupart des compétences sont Python. L'ORM est - syntaxiquement - Python, mais nécessite un certain soin pour faire les choses simplement et proprement. Le modèle est son propre langage, mais considérablement plus simple que PHP. Le reste est SQL, Javascript, HTML, CSS, Apache et autres.
Modifier
Django Maturité
-
Voir http://www.djangoproject.com/community/ pour le nombre de projets actifs.
-
Rejoignez http://groups.google.com/group/django-users pour le flux quotidien d'e-mails des utilisateurs.
Le blog Django remonte à '05, ce qui signifie qu'ils avaient des années d'expérience solide avant de finalement sortir la 1.0 en septembre '08. Le développement a apparemment commencé en 2003.