日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django多數據庫聯用實現方法解析

瀏覽:232日期:2024-09-19 11:51:21

本文講述在一個 django project 中使用多個數據庫的方法, 多個數據庫的聯用 以及多數據庫時數據導入導出的方法。

直接給出一種簡單的方法吧,想了解更多的到官方教程,點擊此處

代碼

1. 每個app都可以單獨設置一個數據庫

settings.py中有數據庫的相關設置,有一個默認的數據庫 default,我們可以再加一些其它的,比如:

# Database# https://docs.djangoproject.com/en/1.8/ref/settings/#databasesDATABASES = { ’default’: { ’ENGINE’: ’django.db.backends.sqlite3’, ’NAME’: os.path.join(BASE_DIR, ’db.sqlite3’), }, ’db1’: { ’ENGINE’: ’django.db.backends.mysql’, ’NAME’: ’dbname1’, ’USER’: ’your_db_user_name’, ’PASSWORD’: ’yourpassword’, 'HOST': 'localhost', }, ’db2’: { ’ENGINE’: ’django.db.backends.mysql’, ’NAME’: ’dbname2’, ’USER’: ’your_db_user_name’, ’PASSWORD’: ’yourpassword’, 'HOST': 'localhost', },} # use multi-database in django# add by WeizhongTuDATABASE_ROUTERS = [’project_name.database_router.DatabaseAppsRouter’]DATABASE_APPS_MAPPING = { # example: #’app_name’:’database_name’, ’app1’: ’db1’, ’app2’: ’db2’,}

在project_name文件夾中存放 database_router.py 文件,內容如下:

# -*- coding: utf-8 -*-from django.conf import settings DATABASE_MAPPING = settings.DATABASE_APPS_MAPPING class DatabaseAppsRouter(object): ''' A router to control all database operations on models for different databases. In case an app is not set in settings.DATABASE_APPS_MAPPING, the router will fallback to the `default` database. Settings example: DATABASE_APPS_MAPPING = {’app1’: ’db1’, ’app2’: ’db2’} ''' def db_for_read(self, model, **hints): ''''Point all read operations to the specific database.''' if model._meta.app_label in DATABASE_MAPPING: return DATABASE_MAPPING[model._meta.app_label] return None def db_for_write(self, model, **hints): '''Point all write operations to the specific database.''' if model._meta.app_label in DATABASE_MAPPING: return DATABASE_MAPPING[model._meta.app_label] return None def allow_relation(self, obj1, obj2, **hints): '''Allow any relation between apps that use the same database.''' db_obj1 = DATABASE_MAPPING.get(obj1._meta.app_label) db_obj2 = DATABASE_MAPPING.get(obj2._meta.app_label) if db_obj1 and db_obj2: if db_obj1 == db_obj2:return True else:return False return None # for Django 1.4 - Django 1.6 def allow_syncdb(self, db, model): '''Make sure that apps only appear in the related database.''' if db in DATABASE_MAPPING.values(): return DATABASE_MAPPING.get(model._meta.app_label) == db elif model._meta.app_label in DATABASE_MAPPING: return False return None # Django 1.7 - Django 1.11 def allow_migrate(self, db, app_label, model_name=None, **hints): print db, app_label, model_name, hints if db in DATABASE_MAPPING.values(): return DATABASE_MAPPING.get(app_label) == db elif app_label in DATABASE_MAPPING: return False return None

這樣就實現了指定的 app 使用指定的數據庫了,當然你也可以多個sqlite3一起使用,相當于可以給每個app都可以單獨設置一個數據庫!如果不設置或者沒有設置的app就會自動使用默認的數據庫。

2.使用指定的數據庫來執行操作

在查詢的語句后面用 using(dbname) 來指定要操作的數據庫即可

# 查詢YourModel.objects.using(’db1’).all() 或者 YourModel.objects.using(’db2’).all()# 保存 或 刪除user_obj.save(using=’new_users’)user_obj.delete(using=’legacy_users’)

3.多個數據庫聯用時數據導入導出

使用的時候和一個數據庫的區別是:

如果不是defalut(默認數據庫)要在命令后邊加 --database=數據庫對應的settings.py中的名稱 如: --database=db1 或 --database=db2

數據庫同步(創建表)

# Django 1.6及以下版本python manage.py syncdb #同步默認的數據庫,和原來的沒有區別# 同步數據庫 db1 (注意:不是數據庫名是db1,是settings.py中的那個db1,不過你可以使這兩個名稱相同,容易使用)python manage.py syncdb --database=db1# Django 1.7 及以上版本python manage.py migrate --database=db1

數據導出

python manage.py dumpdata app1 --database=db1 > app1_fixture.jsonpython manage.py dumpdata app2 --database=db2 > app2_fixture.jsonpython manage.py dumpdata auth > auth_fixture.json

數據庫導入

python manage.py loaddata app1_fixture.json --database=db1python manage.py loaddata app2_fixture.json --database=db2

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费久久99精品国产| 欧美精品自拍| 日韩高清一区| 亚洲视频国产| 免费观看在线综合| 中国女人久久久| 久久国产精品亚洲77777| 国产美女一区| 美美哒免费高清在线观看视频一区二区 | 先锋影音久久久| 中文精品视频| 亚洲欧洲日韩精品在线| 日本午夜精品| 国产欧美亚洲一区| 国产精品对白| 国精品产品一区| 日韩电影免费网址| 99成人超碰| 亚洲大片在线| 久久夜色精品| 日本三级亚洲精品| 欧美a在线观看| 樱桃视频成人在线观看| 91精品蜜臀一区二区三区在线| 亚洲欧洲一区二区天堂久久| 中文不卡在线| 国产精品nxnn| 日韩影院二区| 日韩视频一区| 五月亚洲婷婷 | 日韩福利在线观看| 欧美激情一区| 久久久久久美女精品| 亚洲欧美成人综合| 18国产精品| 国产suv精品一区二区四区视频 | 视频小说一区二区| 最新日韩av| 国产亚洲电影| 久久久人人人| 午夜精品影视国产一区在线麻豆| 麻豆精品久久久| 99精品视频精品精品视频| 免费不卡在线观看| 国产精品第十页| 国产专区一区| 日本强好片久久久久久aaa| 国产一区二区精品久| 99热免费精品| 国产精品mm| 欧美日韩国产探花| 国产精品va| 国产午夜精品一区二区三区欧美| 欧美亚洲国产日韩| 久久一级电影| 国产精品一区二区三区av| 秋霞影视一区二区三区| 亚洲人成毛片在线播放女女| 精品99在线| 亚洲深爱激情| 精品国产成人| 蜜桃av一区二区三区电影| 国产a亚洲精品| 亚洲精品在线二区| 精品捆绑调教一区二区三区| 日韩精品免费观看视频| 欧美性感美女一区二区| 欧美黄页在线免费观看 | 欧美国产不卡| 视频一区国产视频| 色综合视频一区二区三区日韩 | 亚洲精品成a人ⅴ香蕉片| 国产精品久久久久久久久久妞妞| 欧美中文一区二区| 久久av影视| 免费视频久久| 国产aⅴ精品一区二区三区久久| 欧美资源在线| 日韩网站中文字幕| 国产精品magnet| 亚洲一区欧美| 久久婷婷一区| 国产aa精品| 国产精品黄网站| 亚洲精品日本| 99视频一区| av一区在线| 精品国产一区二区三区噜噜噜| 免费看精品久久片| 女主播福利一区| 麻豆视频观看网址久久| 日精品一区二区三区| 婷婷综合激情| 日韩成人亚洲| 国产第一亚洲| 欧美激情亚洲| 国产精品黄网站| 日韩国产欧美视频| 午夜一区在线| 亚洲色诱最新| 99国产精品99久久久久久粉嫩| 久久久久网站| 日韩欧美一区免费| 国产激情在线播放| 精品国产成人| 麻豆成人在线观看| 欧美精品影院| 青青国产91久久久久久| 视频一区日韩精品| 亚洲精品少妇| 日韩亚洲精品在线观看| 亚洲精品在线二区| 日精品一区二区三区| 亚洲精品一级| 日韩精品a在线观看91| 亚洲精品伦理| 亚洲欧美日本国产| 日韩精品三区四区| 91九色综合| 国产日韩欧美一区二区三区| 手机精品视频在线观看| 好吊日精品视频| 午夜久久久久| 久久在线视频免费观看| 久久精品不卡| 欧美va亚洲va日韩∨a综合色| 日韩不卡免费高清视频| 久久91导航| 久久高清免费| 激情自拍一区| 99在线观看免费视频精品观看| 欧美日韩第一| 国产亚洲精品自拍| 蜜臀精品久久久久久蜜臀| 蜜臀久久久99精品久久久久久| 视频在线观看一区二区三区| 日韩精品一二区| 日韩国产欧美在线播放| 国产精品羞羞答答在线观看| 免费看一区二区三区| 国产不卡精品| 1000部精品久久久久久久久| 欧美日韩国产一区精品一区| 中文无码日韩欧| 欧美日韩中文| 精品国产亚洲一区二区三区| 国产不卡人人| 欧美色图国产精品| 日韩一区欧美二区| 国产日韩欧美一区在线| 久久一区视频| 久久91导航| 国产视频一区免费看| 亚洲影院天堂中文av色| 国产精品一国产精品k频道56| 精品精品国产三级a∨在线| 天堂网av成人| 亚洲五月综合| 国产精品久久777777毛茸茸| 亚洲精品88| 日韩精品一级中文字幕精品视频免费观看 | 日韩精品国产精品| 久久99久久久精品欧美| 久久久久99| 亚洲精品伦理| 国产精品99久久精品| 欧美精品一区二区久久| 蜜桃av一区二区| 精品成av人一区二区三区| 欧美日韩四区| 国产高清视频一区二区| 99视频精品全国免费| 亚洲精品人人| 高清av一区| 免费久久99精品国产自在现线| 国产三级一区| 电影天堂国产精品| 亚洲毛片在线免费| 亚洲永久av| 日韩在线黄色| 日韩国产一区二区| 日韩1区2区3区| 97精品国产一区二区三区| 午夜一区在线| 黑森林国产精品av| 中文字幕日韩高清在线| 久久精品国产在热久久| 在线精品小视频| 久久免费福利| 日韩制服丝袜先锋影音| 国产一二在线播放| 亚洲91在线| 久久精品国产大片免费观看| 欧美日韩a区| 欧美午夜不卡| 欧美好骚综合网| 日韩不卡免费视频| 国产99亚洲| 麻豆国产精品| 亚洲精品免费观看|