Извлечение данных из существующей базы данных

Я пытаюсь создать веб-приложение, которое обрабатывает данные счета и печатает эти данные для выписок по счету и анализа возраста.

Данные нужно будет получать из существующей базы данных Sage Evolution и выводить на веб-страницу через Django

Я просмотрел документацию Django, однако, функция inspectdb, которую она предоставляет, не дает слишком много информации о том, как получить данные через IP-адрес базы данных.

У кого-нибудь есть пример кода/учебник, как получить эти данные через IP-адрес, почти с той же процедурой, что и приведенный ниже код .BAT

import pymssql

user = '[User ]'
password = '[Password]'
server = '[IP]'

#username: [Username]_dev_ro
#password: [Password]
#database name: DB_Name

databaseName = 'DB_Name'

conn = pymssql.connect(server, user, password, databaseName)
cursor = conn.cursor(as_dict=True)

cursor.execute('SELECT top 10 * FROM [DB_Name].[dbo].[_etblGLAccountTypes]')
for row in cursor:
    print(row)

conn.close()

При использовании Django вам не нужно писать код для ручного подключения к базе данных. Вам просто нужно настроить поле DATABASES в settings.py вашего Django проекта, после чего Django ORM уже сделает всю работу за вас. На самом деле, вам даже не нужно больше писать команды SQL (если только у вас нет очень специфических случаев использования, которые пока не рассматриваются), поскольку Django уже предоставляет инструменты (через методы класса модели), чтобы сделать это за вас.

.
├── manage.py
└── my_proj
   ├── asgi.py
   ├── __init__.py
   ├── settings.py  <--- This one
   ├── urls.py
   └── wsgi.py

Образец конфигурации:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

После конфигурирования запуск любых команд управления Django, нацеленных на базу данных, таких как inspectdb, уже будет обращаться к сконфигурированной базе данных. Возможно, вам потребуется создать модели для существующей базы данных, как документировано , например python manage.py inspectdb > models.py. Тогда выполнение запроса будет таким же простым, как:

$ python manage.py shell
>>> from my_app import models
>>> models.ModelA.objects.all()
<QuerySet [<ModelA: ModelA object (1)>, <ModelA: ModelA object (2)>]>
>>> models.ModelA.objects.values()
<QuerySet [{'id': 1, 'child_field_id': None, 'field_a': 'Value 1'}, {'id': 2, 'child_field_id': 1, 'field_a': 'Value 2'}]>

Для получения дополнительной информации о возможностях работы с запросами смотрите docs.

Вы даже можете подключиться непосредственно к вашей базе данных через python manage.py dbshell, как документировано .

Вернуться на верх