在网上看到很多相关的django连接并查询两个数据库内容的文章~但是大多数都比较凌乱~要改setting是一类的配置文件,但是那样不但改起来麻烦而且会出现各种各样很凌乱很奇怪的问题。其实根本不需要那么麻烦的,只要在.py文件中进行连接就好~至于setting文件中的DATABASE不需要改啦~
下面我们来看例子吧!
准备条件:我们的mysql里面有数据库test和huihui两个数据库,我们要做的是把test中pet表中的数据和huihui中user表中数据查询并显示在html页面。表的情况如下:


1、当然是新建一个.py页面和一个.html页面,这里我们都取名为test
2、编辑.py页面
首先是倒入一些需要用到的包

之后就是我们的正题连接数据库啦~其实很简单~跟连接一个数据库是一样的只不过把conn写两次而已

再然后我们就要写我们的sql语句咯,和查询一个数据库真的很像~只是一个分开的sql~~但是results要注意哪个对应哪个噢!

(大家可能会疑惑上面的a是什么~忘了交代~a就是分页的时候获取html中提交page值的变量呀~如果不懂请参见第一篇文章~)
下面的代码就是为了实现分页显示的代码了

然后要做的就是各种关闭连接啦!

最后一步就是把各种值传递给html页面:

附一张html页面的代码吧:

补充说明:最上面的连接host写的是localhost,如果是不用机器上的服务器就要把地址换成两台机器的IP就可以了
不过,这种情况下要注意一个问题就是~如果两个数据库不在同一台机器上,sql语句就要优化一下了~一条sql语句里不能同时查询两台机器上的数据~原因不知道~但是会报错。可以让两条sql语句分别查询两个数据库~之后在获得result的时候再用主键进行判断^_^
本文介绍如何在Django中不修改settings文件,直接在.py文件中连接并查询两个不同数据库(test和huihui)的数据。通过示例展示了如何编写SQL语句,实现将test数据库中pet表和huihui数据库中user表的数据在HTML页面上展示,并提供了分页显示的实现方法。注意,当数据库不在同一台机器上时,SQL语句应分开查询,避免直接跨数据库操作。
2781

被折叠的 条评论
为什么被折叠?



