Важливі моменти по роботі з базами даних в ORM Django.
Якщо існує база даних і її треба приєднати до проєкту.
Треба робити щось схоже на таке:
- налаштувати підключення бази даних ( підключення default)
- створити модель бази командою
python manage.py inspectdb --database=default
- інколи можливо отримати тільки модель кожної таблиці окремо:
python manage.py inspectdb --database=default TableName
- скопіювати створену модель до файлу застосунку appname\models.py
- база підключена. Цілком можливо, треба буде десь виправити недоліки, та в цілому – проєкт готовий до роботи з базою
Якщо баз даних декілька
налаштування підключення у файлі проєкту settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
},
"filmbase": {
"ENGINE": "mssql",
"NAME": "SBase",
"USER": "User",
"PASSWORD": "********",
"HOST": "Server",
"PORT": "1433",
"OPTIONS": {"driver": "ODBC Driver 17 for SQL Server",
},
},
} # показано як підключити БД MSSQL [pip install django mssql-django]
- при запитах використовувати конструкцію
item.objects.using('filmbase').all()
або завжди вказуватиitem.objects.using('default').all()
- якщо необхідно обмежити кількість у 10 результатів можливо використати конструкцію (сортування по id або pk)
item.objects.all().order_by('-id')[:10:1]
Бекап бази
- найпростіший метод – експорт (dump) бази засобами СУБД
- експорт то csv/xls/json засобами СУБД (складніший, але універсальний спосіб)
- використовувати Django dumpdata/loaddata
- https://www.etutorialspoint.com/index.php/256-django-export-model-data-to-csv
Корисні посилання
Підключитись до MSSQL бази
http://www.pymssql.org/pymssql_examples.html
http://www.pymssql.org/freetds.html