Kijk op Django .
Python-code. Een sjabloontaal die enkele van dezelfde functies als PHP toestaat -- iets andere syntaxis.
Model is gescheiden van weergavefuncties ("bedrijfsregels") en gescheiden van presentatie. Dit wordt overal in Django gehandhaafd.
Een van de veelgestelde vragen is "waarom kan ik niet -- een of ander gek PHP-achtig ding -- in de Django-sjabloon doen?" Het antwoord is dat de presentatie niet wordt verwerkt. Doe uw verwerking in de Django-weergavefuncties. Geef de resultaten weer als HTML in de sjabloon.
Django heeft ook een ORM-laag om u te scheiden van kleine SQL-overwegingen. MySQL of PostgreSQL zijn min of meer equivalent vanuit Django.
Bewerken
"Volwassenheid" betekent veel dingen. U noemde specifiek bekwame mensen als een teken van volwassenheid.
Django is pure Python. Als je Python-mensen kunt vinden, kunnen ze Django in een paar dagen leren. Ze moeten gewoon de tutorials doen.
-
Een door Django aangedreven site is meestal Apache + wat lijm + Django. De lijm kan mod_wsgi of mod_python of mod_fastcgi zijn. Je moet deze configuratie met enige zorg beheren omdat er verschillende bewegende delen zijn. Dit is echter hetzelfde Apache-configuratieprobleem dat je hebt met PHP -- niets nieuws hier.
-
Een Django-site heeft een of meer Django-serverinstanties, elk met een instellingenbestand, een URL-toewijzing en een willekeurig aantal toepassingen. Pure Python op dit moment.
-
Een Django-applicatie heeft URL-toewijzingen, model en weergaven. Allemaal pure Python. Eenheid getest met de Django-extensies voor Python's eigen interne unittest-framework.
-
Het model maakt gebruik van een ORM-laag. Dit is misschien wel het meest verwarrende in Django. Mensen ontwerpen soms heel vreemde modellen omdat ze ofwel te hoog-uber-generiek denken, ofwel te veel in SQL denken. Django is een middenweg van voornamelijk objectoriëntatie met enige SQL-overweging. Als je dit krijgt, ben je niet te stoppen.
-
Een Django-toepassing kan sjablonen hebben, die in hun eigen sjabloontaal zijn. Dit zou ongeveer het enige niet-Python-ding zijn dat van veel belang is. Misschien wilt u aangepaste tags toevoegen -- pure Python.
-
Je hebt waarschijnlijk JavaScript (ook waar voor PHP en elk ander webtoepassingsframework). Niets nieuws hier.
-
Aangezien de beheerderstoepassing van Django automatisch de basis CRUD-verwerking afhandelt, hoeft u dit niet te schrijven. U bent vrij om alle transactie-dingen te schrijven die u wilt. Maar dat hoeft niet. Dit leidt tot een zeer, zeer krachtige hybride.
-
Je schrijft een paar ingewikkelde, kritische transacties. Pure Python, tussen haakjes.
-
Je schrijft geen van de domme tafelonderhoudstransacties. Geen enkele code is superieur aan Python of PHP.
-
Nadat je je voeten nat hebt gemaakt met de sjabloon-engine en CSS'en, kun je de beheerdersinterface aanpassen om eruit te zien zoals je wilt. Dit zijn HTML/CSS-dingen, geen Python of PHP.
-
Onderste regel. Het grootste deel van de vaardigheden is Python. De ORM is -- syntactisch -- Python, maar vereist enige zorg om dingen eenvoudig en netjes te doen. Het sjabloon is zijn eigen taal, maar aanzienlijk eenvoudiger dan PHP. De rest is SQL, Javascript, HTML, CSS, Apache en wat al niet meer.
Bewerken
Django-rijpheid
-
Zie http://www.djangoproject.com/community/ voor het aantal actieve projecten.
-
Word lid van http://groups.google.com/group/django-users voor dagelijkse stroom van e-mails van gebruikers.
Het Django-blog gaat terug tot '05, wat betekent dat ze jarenlange solide ervaring hadden voordat ze uiteindelijk 1.0 in september '08 uitbrachten. De ontwikkeling begon blijkbaar in '03.