Question: I've been learning Python through Udacity, Code Academy and Google University. I'm now feeling confident enough to start learning Django. My question is should I learn Django on an SQL database - either SQLite or MySQL; or should I learn Django on a NoSQL database such as Mongo?

I've read all about both but there's a lot I don't understand. Mongo sounds better/easier but at the same time it sounds better/easier for those that already know Relational Databases very well and are looking for something more agile.

Answer: 
As a beginner, it will probably be easiest to learn Django using `sqlite`. You only need to provide a location for the database and to specify sqlite3 as your backend to get it working, which is nice. If you want to use `postgres` later, it'll be more work but it's still feasible. See @JonathanVanasco's note in the comments.

If you want to eventually use a NoSQL DB, Django doesn't support it currently. [Here](https://docs.djangoproject.com/en/dev/ref/databases/#using-a-3rd-party-database-backend) is the list of recognized 3rd party Django backends.

You could use Mongo through a third party fork known as [django-nonrel](http://www.allbuttonspressed.com/projects/django-nonrel), but this particular implementation doesn't support ManyToManyFields and has a few other limitations. You can read more about Mongo in django-nonrel at [this blog post](http://www.allbuttonspressed.com/blog/django/2010/05/MongoDB-backend-for-Django-nonrel-released). There's some more unofficial documentation on django-nonrel [here](https://code.djangoproject.com/wiki/NoSqlSupport).
Postgres is a great database for Django in production. sqlite is amazing to develop with. You will be doing a lot of work to try to not use a RDBMS on your first Django site.

One of the greatest strengths of Django is the smooth full-stack integration, great docs, contrib apps, app ecosystem. Choosing Mongo, you lose a lot of this. GeoDjango also assumes SQL and really loves postgres/postgis above others - and GeoDjango is really awesome.

If you want to use Mongo, I might recommend that you start with something like bottle, flask, tornado, cyclone, or other that are less about the full-stack integration and less assuming about you using a certain ORM. The Django tutorial, for instance, assumes that you are using the ORM with a SQL DB.