- Jinja instead of Django templates.
- Custom (and sane) class-based views instead of Django's disgusting defaults.
- Custom class-based settings.
- There's no way to define app-only middleware in Django. Flask blueprints make it trivial.
However, 10 years later and no framework has come close to Django's true strength: built-in admin.
https://docs.djangoproject.com/en/1.8/ref/models/conditional...
Flask vs Django was a huge point of contention between the two lead developers. One even quit over Django being chosen.
By the end of the project, we ended up using a ton of django's features. The business functional specifications changed, we did some research, and found out it would be easy to handle via slight extension of some already built-ins to django ex. template loaders,middleware,sites,and signals. It saved us a ton of time. I feel pretty safe saying I would use Flask for small very clearly specified projects, but otherwise I would probably choose Django.
Django in 2015 though pretty much does everything I need. I still have gripes but when you factor in extras like the Django Rest Framework it's still my go-to for new projects unless it's something completely unusual.
In most real-world projects started using Flask - you end up reimplementing half of Django badly by the time you're finished.