Matt Seymour

As you may or may not know Django is an awesome framework for web development. Its complete, simple to code, and well documented. But as with every thing there are a few things that just plain frustrate and annoy me about working with it that I would like to see worked on and improved.

1. Django communities reaction to MySql

2. Deployment

Probably my single biggest problem with django is the ease of deployment.

3. The need for a better initial project layout

I think most people would agree that the first thing they do when starting a django project is completely change the layout of the default project structure. Django by default creates applications in the project root directory.


# default project
| My project dir
    | Project folder
        | settings.py
        | wsgi.py
        | urls.py

Newly created applications will be created by default in the My Project dir. Whilst there is no problem with this when you are starting out and your project is small over time it does lead to a project structure which can be difficult to manage.

A more sensible initial project structure would be one which allows for better management from the initial creation of the project.


# improved project strucute
| My Project dir
    | apps
    | libs
    | settings
        | common.py
        | local.py
    | wsgi.py
    | urls.py

With this basic structure all apps are stored in an apps folder separating them from third party libraries. The settings files in one directory again allows for cleaner project layout and easier project management as your project grows over time.

4. Django website (this has now been fixed.)