我将尝试构建一个Web应用程序,用户可以在其中访问URL,登录并查看报告和其他信息。但是,报告的数据存储在外部数据库中。这是一个我将要访问的MySQL数据库。
我在Google上做了一些研究,没有太多运气找到任何例子。我已经读了一些有关连接到多个数据库的文章-https://docs.djangoproject.com/en/dev/topics/db/multi- db/所以看来我可以连接到数据库了。
下一部分是我遇到的问题。数据库中的数据将一直更新。我既不想编辑信息,也不想覆盖任何东西。我只希望能够连接到数据库,提取所需的信息,然后通过模板查看它,以使用户能够看到。首先,因为数据一直在更新,这会成为问题吗?(我希望不是!)
连接到数据库后,什么是最好的方式才能提取数据,然后将其转换为可以输出到模板的格式?我是否需要将数据导入模型,然后使用视图进行控制。还是我需要使用JSON或XML转换数据?
我是python / django的新手,因此非常感谢您的帮助。如果您需要更多信息,请事先询问并感谢。:)
没问题!我一直都这样做。
至于“不要编辑或更新数据”,只要不要在您的应用程序中添加任何会更新数据的内容即可。塞勒姆关于在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)您可以在应用程序中手动管理连接和查询。在视图中这是完全有效的:
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在同一数据库中创建表,则可能会简化事情。