Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве описано, как создать проект Django, подключить его к базе данных SQL Server с помощьюmssql-django, выполнить миграцию и выполнить основные операции с данными с помощью Django ORM.
Необходимые условия
- Python 3.8 или более поздней версии. Для Django 6.0 требуется Python версии 3.12 и более поздних версий.
- Microsoft драйвер ODBC 17 или 18 для SQL Server. См. раздел "Скачать драйвер ODBC для SQL Server".
- Экземпляр SQL Server или база данных База данных SQL Azure с действительной учетной записью для входа.
Шаг 1. Установка mssql-django
Создайте виртуальную среду и установите пакет:
python -m venv .venv
.venv\Scripts\activate
pip install mssql-django
Шаг 2. Создание проекта Django
Создайте проект и приложение Django:
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
Шаг 3. Настройка базы данных
Измените myproject/settings.py и замените параметр по умолчанию DATABASES .
Подключение к SQL Server
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>",
"PORT": "1433",
},
}
Caution
Используйте TrustServerCertificate=yes только для локальной разработки с самоподписанными сертификатами. Не используйте его в рабочей среде. Это отключает проверку цепочки сертификатов и повышает риск атаки «злоумышленник посередине». Установите доверенный сертификат на сервер и подключитесь с помощью TrustServerCertificate=no.
Подключение к База данных SQL Azure
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "<your-database>",
"USER": "<your-username>",
"PASSWORD": "<your-password>",
"HOST": "<your-server>.database.windows.net",
"PORT": "1433",
"OPTIONS": {
"driver": "ODBC Driver 18 for SQL Server",
"extra_params": "Encrypt=yes",
},
},
}
Шаг 4. Определение модели
Отредактируйте файл myapp/models.py:
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
Добавить "myapp" в INSTALLED_APPS в settings.py:
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myapp",
]
Шаг 5: Запустите миграции
Создание и применение миграций баз данных:
python manage.py makemigrations myapp
python manage.py migrate
Убедитесь, что myapp миграция была применена:
python manage.py showmigrations myapp
Вы должны увидеть [X] 0001_initial. Если вы видите [ ] 0001_initial, выполните повторное выполнение python manage.py migrate myapp перед продолжением.
Шаг 6. Использование Django ORM
Откройте оболочку Django. Оболочка — это интерактивный сеанс Python с загруженным проектом Django; на это указывает приглашение >>>.
python manage.py shell
В командной строке >>> импортируйте модель:
from myapp.models import Product
Создайте запись:
product = Product.objects.create(name="Widget", price=9.99)
print(f"Created: {product.name} (id={product.pk})")
Чтение записей:
for p in Product.objects.all():
print(f"{p.name}: ${p.price}")
Обновите запись:
product.price = 12.99
product.save()
Удалите запись:
product.delete()
Выйдите из оболочки с помощью exit(). Кроме того, используйте CTRL+Z в Windows или CTRL+D в Linux или macOS.
Note
Если возникает ошибка Invalid object name 'myapp_product', таблица myapp_product не существует в базе данных, хотя история миграций Django показывает, что 0001_initial применена. Выйдите из оболочки, затем сбросьте историю миграции и примените её повторно:
python manage.py migrate myapp zero --fake
python manage.py migrate myapp
Связанный контент
- Установка mssql-django
- Поле Django для сопоставления типов SQL Server
- Руководство по Django
- mssql-django на GitHub