I remember watching a beautiful talk from some pycon whose details I can’t remember about using django as if it was a micro-framework.
It basically boils down to rejecting the folder structure that django-admin sets up for you, importing stuff yourself and doing some basic initialisation/configuration.
Once you do that, django kinda somehow behaves like a micro-framework, with the significant difference that you can import and use the advanced features if you want/need to.
Re:Django 4.1
by ingenieroariel on Wednesday August 03, 2022 @10:07AM
(#32331851)
Here is an example of a single file Django project I started around eight years ago that does what you mention:
https://github.com/planetfederal/registry/blob/149a2b958dd05...
I guess I prefer to keep it light and use a true microframework like flask for this use case. I find I can similarly import Flask extensions without bringing in a full heavy framework
You typically do Django + REST because you are already comfortable with Django or because you were already using it, although I could argue, you could consider making your API project stand alone and using CherryPy or even FastAPI for a much nicer experience. The downside there being you wouldn't be using Django's ORM. I really do wish Django's ORM would be spun off into a stand alone project that Django then imports, so anyone else can use it in other non-django specific projects.