django使用多个数据库

新版的Django1.2.1,正式加入同时多个数据库的支持。也是变化的亮点;这种变化有很多隐含的用法(虽然首次加入这样的功能,还有待完善,但以Django团队提供可用的东西,足够灵活的开发者进行多种的实际应用了),多个数据库支持,不仅仅受限于同种数据库数量,还可以同时选择多种数据库类型。比如项目可以同时使用mysql和postgres,sqlite3等;当然可以同时采用mysql两个数据库,一个是主数据库,一个备份数据库;或者想在开发环境中使用数据库B,部署环境使用数据库A,这时只需要修改一下数据库的别名,就能切换过来...总之,对于开发者来说,只要你想到用途,Django加入数据库的支持,都会对你有所帮助。简单记述一下用法:

默认下该版本开启了这个功能,看看setting.py 的配置

DATABASES = {

    'default': {

        'NAME': 'app_data',

        'ENGINE':'django.db.backends.postgresql_psycopg2',

        'USER': 'postgres_user',

        'PASSWORD': 's3krit'

    },

    'users': {

        'NAME': 'user_data',

        'ENGINE':'django.db.backends.mysql',

        'USER': 'mysql_user',

        'PASSWORD': 'priv4te'

    }

}

.....

这时候你可能有疑问,如果我们要syncdb的时候,django会针对哪个数据库执行操作呢?根据实际的使用,如果没有指定数据库,django会选择别名为default的数据库来操作。

如果syncdb时要指定某个数据库:manage.py syncdb --database=users

对数据的查询 保存 删除 等操作,同理没有指定数据库,Django依然选择别人为default的数据库操作。

譬如查询数据库,指定某个数据库:Author.objects.using('users').all()。

using函数有多种用法,进行添加 修改操作的时候:p.save(using='users') user_obj.delete(using='users')

 

源文档 <http://2goo.info/blog/panjj/Django/2010/08/15/111>

 

posted on 2011-05-29 17:59  xuq  阅读(541)  评论(0编辑  收藏  举报

导航