从现有数据库中提取数据
Pulling data from an existing database
我正在尝试创建一个网络应用程序来处理帐户数据并将所述数据打印到帐户报表和年龄分析中。
需要从现有的 Sage Evolution 数据库中获取数据并通过 Django 打印到网页。
我看过 Django 文档,但是,它提供的 inspectdb
函数没有提供太多有关如何通过数据库 IP 地址获取数据的信息。
有没有人有关于如何通过 IP 地址获取此数据的代码 example/tutorial,几乎与下面的程序相同 .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时,无需编写代码手动连接数据库。您只需在 Django 项目的 settings.py
中配置 DATABASES 字段,然后 Django ORM 就会为您完成这项工作。实际上,您甚至不必再编写 SQL 命令(除非您有尚未涵盖的非常具体的用例),因为 Django 已经提供了工具(通过模型 class 方法)来执行此操作你.
.
├── 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
)都已经与配置的数据库通信。您可能需要为现有数据库创建模型 documented 例如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
作为 documented.
直接连接到您的数据库
我正在尝试创建一个网络应用程序来处理帐户数据并将所述数据打印到帐户报表和年龄分析中。
需要从现有的 Sage Evolution 数据库中获取数据并通过 Django 打印到网页。
我看过 Django 文档,但是,它提供的 inspectdb
函数没有提供太多有关如何通过数据库 IP 地址获取数据的信息。
有没有人有关于如何通过 IP 地址获取此数据的代码 example/tutorial,几乎与下面的程序相同 .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时,无需编写代码手动连接数据库。您只需在 Django 项目的 settings.py
中配置 DATABASES 字段,然后 Django ORM 就会为您完成这项工作。实际上,您甚至不必再编写 SQL 命令(除非您有尚未涵盖的非常具体的用例),因为 Django 已经提供了工具(通过模型 class 方法)来执行此操作你.
.
├── 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
)都已经与配置的数据库通信。您可能需要为现有数据库创建模型 documented 例如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
作为 documented.