Нужно ли мне models.py
даже для готовых баз данных mysql?
Вам не нужно для построения моделей. Некоторые (небольшие) веб-серверы даже полностью не сохраняют состояние и поэтому не используют базу данных. Но большая часть того, как Django может помочь вам, основана на моделях.
Вы можете написать свои собственные запросы, формы и т. Д. Но часто, используя ModelForm
, Django может, например, удалить большое количествостандартный код. Более того, это уменьшит вероятность ошибок в вашем коде. Поэтому, хотя это и не является строго обязательным, модели обычно являются краеугольным камнем в том, как Django может помочь вам.
Вы можете использовать команду inspectdb
[Django-doc] чтобы проверить базу данных, и пусть Django "набросает" модели для вас. Обычно у вас будет еще немного работы. Так как Django может, например, не получить, что поле является EmailField
, так как и CharField
и EmailField
выглядят одинаково на стороне базы данных.
Вам не нужно использовать inspectdb
однако. Вы можете создавать свои собственные модели. Если вы создаете свои собственные модели, но они уже существуют на стороне базы данных, вы можете установить managed = False
[Django-doc] в Meta
вашей модели,помешать Джанго построить миграцию.