Hello. I’m new to Django, and am already liking it since it’s a lot simpler than Spring and Struts. The Admin site is an especially fantastic idea.
However, after being through the official tutorial and trying to create a webapp on my own, I felt there are some things that could be a lot more intuitive.
-
Similar to the Admin site, it’d help to have a frontend dashboard webapp that can be run locally to do various things in Django. For example, to create a new app, I could just click a button on this webapp and type the name of my app instead of having to go to the console and type:
python manage.py startapp appName
. A lot of other functions could be added to such a webapp. Particularly, editing or adding data to the settings.py file. -
When I tried creating my first landingPage app as a homepage, it took many hours to figure out that I was supposed to add
INSTALLED_APPS = ['landingPage.apps.LandingpageConfig'
in settings.py. Couldn’t it have been automatically added duringpython manage.py startapp appName
? Then it took some more time to figure out that I missed adding a comma at the end of the line. -
When a newbie tries out Django to understand how the control flows from file to file and what information gets passed, it helps to be able to use
print
or a logger to view the outputs. I know Django has a logger, but it’s a bit complex to figure out how to use it. If the dashboard webapp could have a GUI where logger options could be set, we wouldn’t have to mess around with settings.py. -
When I wanted to include Twitter bootstrap’s css files, information on the internet and on Django’s documentation was perplexing. Some people advise putting the css files in a separate bootstrap app. Some advise putting it in the user’s app as a static folder. The usage of static itself is unclear. Another page speaks of cases where a separate server is used for static files. For me, who just wants to know if I can place the css files in one folder and allow all apps to use it, this overload of information is daunting. It left me wishing again, for a dashboard app where I could just choose options from a GUI, and the necessary changes/additions to settings.py or the creation of the necessary static folders would automatically happen at the appropriate locations.
-
Things like adding namespaces or similar tasks could also be automated.
-
Even if the complete flow from a url.py to another url.py could be shown visually/graphically, it’d be a huge lifesaver. Having to go into every individual file and tweak values and debug for a missing slash or comma is something that could definitely be avoided with a good UI or automated process. It’d save so much time!
I’m aware that web app development is complex, and creating such a dashboard app may be daunting. Still, if you look at Django development or webapp development in general, from a newbie’s perspective, you’ll see that there’s a massive amount of manual work and learning that could be simplified a lot. Django’s team has already done some splendid work with simplifications. I just hope that some more of the amount of manual effort that goes into web development could be reduced with a frontend.