使用django从外部数据库将数据提取到模板

JDa*_*ies 12 python xml mysql django json

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

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

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

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

我对python/django很新,所以任何帮助都会非常感激.如果您需要更多信息,请提前询问并表示感谢.:)

Chr*_*vey 16

没问题!我一直这样做.

就"不要编辑或更新数据"而言,只是不要向应用程序添加任何会更新数据的内容.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 })
Run Code Online (Sandbox Code Playgroud)

2)您可以在应用程序中手动管理连接和查询.这在视图中完全有效:

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})
Run Code Online (Sandbox Code Playgroud)

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