python - 使用 django 从外部数据库中提取数据到模板

标签 python mysql xml django json

我将尝试构建一个网络应用程序,用户可以在其中访问 URL、登录并查看报告和其他信息。但是,报告的数据存储在外部数据库中。这是一个 MySQL 数据库,我可以访问它。

我对谷歌做了一些研究,但没有找到任何例子。我对连接多个数据库进行了一些阅读 - https://docs.djangoproject.com/en/dev/topics/db/multi-db/所以看起来我可以连接到数据库了。

下一部分是我卡住的地方。数据库中的数据将随时更新。我不想能够编辑信息,我也不想能够覆盖任何东西。我只是希望能够连接到数据库拉取所需的信息,然后通过模板查看以供用户查看。首先,因为数据一直在更新,这会是一个问题吗? (希望不会!)

一旦我连接到数据库,最好能够提取数据,然后将其转换为我可以输出到模板的格式?我是否需要将数据导入模型,然后使用 View 进行控制。或者我需要用 JSON 或 XML 转换数据吗?

我对 python/django 还很陌生,所以任何帮助都将不胜感激。如果您需要更多信息,请提前询问并感谢。 :)

最佳答案

没问题!我一直这样做。

至于“不要编辑或更新数据”,只是不要向您的应用添加任何会更新数据的内容。 Salem 关于在 MySQL 端使用权限的建议也是一个好主意。

要检索数据,您有两种选择:

1) 您可以创建与您在 MySQL 数据库中的表相对应的 Django 模型。您可以手动执行此操作,也可以使用带有 manage.py 的“inspectdb”命令为自己提供一个良好的起点。然后做这样的事情:

def myview(request):
  rows = MyModel.objects.using('mysql').all()
  return render_to_response("mytemplate.html", {"rows" : rows })

2) 您可以在您的应用程序中手动管理连接和查询。这在一个 View 中是完全有效的:

def myview(request):
  conn = MySQLdb.connect("connection info here")
  try:
    cursor = conn.cursor()
    cursor.execute("select * from mytable")
    rows = cursor.fetchall()
  finally:
    conn.close()

  return render_to_response("mytemplate.html", {"rows" : rows})

最后——Django 非常乐意使用 MySQL 作为数据库。如果您的 DBA 让 Django 在同一个数据库中创建它的表,它可能会简化事情。

关于python - 使用 django 从外部数据库中提取数据到模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596261/

相关文章:

python - 返回按 ID 分组的两个数字的范围

python - 后验概率 python 示例

java - 如何在Spring boot上生成GeoJson?

c# - XML 元素属性值是否始终是字符串数据类型?

c# - 查询从不返回结果 - "Enumeration yielded no results"

python - Tensorflow 2.0 : How to change the output signature while using tf. 保存模型

python - 在 Azure 计算机视觉中将 PIL 裁剪图像作为流传递

mysql - 我的 SQL 查询查找具有匹配主键的最大 <= 日期

php - 信用卡号码和有效期的组合是否唯一?

javascript - 根据 Javascript 中的 DTD 验证 XML?