从现有数据库中提取数据



我正在尝试创建一个web应用程序,处理帐户数据和打印数据到帐户报表和年龄分析。

数据需要从现有的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时,不需要编写代码手动连接数据库。你只需要配置数据库字段在你的Django项目的settings.py,然后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',
}
}

配置后,运行任何针对数据库(如inspectdb)的Django管理命令将已经与配置的数据库通信。你可能需要为你现有的数据库创建模型,例如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直接连接到你的数据库。

相关内容

  • 没有找到相关文章

最新更新