Нет, вам не нужно создавать отдельное приложение для каждой модели. Вы должны создать приложение для каждого отдельного набора функций в вашем проекте. Поскольку вы только учитесь, вы должны создать одно приложение (с названием вашего проекта) и использовать его для обучения.
Что касается моделей, то они представляют собой просто слой представления таблиц в вашей БД, который облегчает работу и справляется со многими сложностями, связанными с взаимодействием с вашей БД. Таким образом, в вашем случае вы должны создать модель для каждой таблицы в вашей существующей базе данных db: Widget, Creator (возможно, вы захотите сделать ссылку внешним ключом на вашу таблицу User), Customer, Order.
Способ, которым вы возвращаете конкретные данные, - через ваши представления. Так, например, чтобы получить все данные для определенного виджета с помощью URL-адреса в вашем примере, url / widget / 1234 будет указывать на функцию на вашей странице views.py, где вы будете запрашивать в своей базе данных необходимую информацию и отправлять это к вашему шаблону. В вашем примере запрос будет выглядеть примерно так:
widget = Widget.objects.get(id=1234)
Обратите внимание, что, поскольку у вас есть существующая база данных, вам придется переопределить стандартные правила именования db Dango. Вы можете прочитать больше о том, как это сделать, здесь: https://docs.djangoproject.com/en/dev/topics/db/models/
Однако лучший совет, который я могу вам дать, это отложить свой собственный проект / приложение на пару дней и просмотреть официальное руководство по Django и документацию. Особенно, когда вы впервые учитесь, это невероятно хорошо документировано и легко выучить:
https://docs.djangoproject.com/en/dev/