【问题标题】:Pulling data from an existing database从现有数据库中提取数据
【发布时间】:2021-08-19 07:25:21
【问题描述】:

我正在尝试创建一个网络应用程序来处理帐户数据并将所述数据打印到帐户报表和年龄分析中。

需要从现有的 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()

【问题讨论】:

    标签: python django database sage-erp


    【解决方案1】:

    使用 Django 时,无需编写代码手动连接数据库。您只需在 Django 项目的 settings.py 中配置 DATABASES 字段,然后 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)已经与配置的数据库通信。您可能需要为现有数据库创建模型 documented 例如python manage.py inspectdb &gt; 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 直接连接到您的数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多