-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Configuring Your Django Project
Using App Engine's Authentication
Coming up with a name for a project like this is trickier than you think. I wanted something short, and similar to the word "django" so that imports were easy and familiar (e.g. django.contrib.auth vs djangae.contrib.auth), and I wanted something that describes exactly what the project does (like djangoappengine does). Portmantaeus seem to be common in this area (there is also a djappengine project) so I figured I'd continue the trend. As for the pronouncation, "djang-ee" seems nicer to say than "djang-ay", and it inherits the "eee" from GAE which is always pronounced as individual letters as it's an abbreviation. That said, I've heard Djangae pronounced both ways, I don't care that much how you pronounce it, but the definitive way is "djang-ee" :)
I did send some patches upstream, but came to the conclusion that the actual architecture of djangoappengine/django-nonrel was wrong. The whole stack was designed to be portable across various non-rel backends (although Mongo and App Engine seem to be the main ones) and this meant sacrifices in potential features and too much abstraction in the code. I also realized that enough had changed in Django since djangoappengine was developed to avoid the need for a "non-rel" fork of it, which would mean we'd be able to keep up with Django releases more easily.
When I initially set out to restructure the djangoappengine database connector for Djangae, I also realized that the logic was implemented too high in the Django database stack. Djangae instead slips in at the cursor-level just as queries are being executed, and rather than passing SQL strings to Django, we pass Commands around. As Django literally does nothing with the SQL except pass it back to the cursor, we elegantly and transparently implement App Engine specific behaviour without having to touch Django code.
There were a bunch of other things, but basically I felt it was time to start afresh and build something new.