Don't get me wrong, Django is great. It has a lot of cool stuff, and a lot of work was put into the framework. But don't learn it as your first one.
Abstractions are great at first, as they allow you to make stuff that works in a faster manner. Predefined ways of doing things are also great, as you don't need to think about boring stuff.
The only problem with both of these things is that
knowing only the abstraction won't help you in the long term.
doing heavy customization on predefined things will get complicated very fast.
If you will need to do some custom stuff for your project ( and you most probably will ), doing that with Django + Django Rest Framework might feel like swimming against the current at times. And most guides which explain to you how to solve a problem will be doing the same thing - swimming against the current.
If you're both
then understanding how Django works is extremely hard. Learning this nested way of doing things is extremely long and confusing. If will feel at times that you have to keep in mind too many things in order to connect everything together.
"Oh, so i need to create a new app that will have new routes. Then i have to create views that will hold the models. Then i have to run migrations. I don't even know what that is but whatever. Then i have to create the models and import them into the views. And when that works, i need to import the created routes into the main project file. Oh, and also connect them to the admin view. Right."
For a beginner, learning each of these steps will feel foreign. While abstractions at the start will help you to create new projects faster, you will shoot yourself in the foot with them later. In order to avoid that, learn something that does not have as many abstractions.
If i would be learning backend from scratch today, picking Express would be the more productive choice, in my opinion.
The main difference between Django and Express will be that in Express you will be able to add new parts more incrementally. This makes the learning process so much easier.
Also, the framework does not have any inbuild structure, you can build backends and implement new functionality line by line.It's also written in Javascript. This means that when you will be learning frontend, you won't have to learn a new language if you picked Node instead of Django. Also, most of the Express tutorials start from scratch, so you can learn each individual part in an easier way.
Once you know
req thing that you write in the router functionTo keep things simple, use SQLite exclusivley.
Take a quick break from backend and watch a boring 1 to 2 hour SQL tutorial on youtube. Longer tutorials don't make much sense because you're going go forget most of the stuff and Google it again later anyways.
Create a a table for a Todo or anything you want, doesn't matter. Write some plain SQL strings that could get the data from the db. Once that is done, figure out how you can pass the data from the url param and the body into the SQL query string.
Create a fully working REST API for the database that can be manipulated using the Express app. Once that is done, check out why ORMs are used instead of the vanilla SQL statements.
Do everything gradually, and don't move on to the next thing if the previous one does not work.
If you learn this stuff step by step, then you will have a much better understanding of how this stuff actually works. And once you know how this stuff works, you'll realize that this ain't no rocket science.