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

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

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

瀏覽:231日期: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久久,三上悠亚国产精品一区二区三区
日本欧美国产| 国产极品久久久久久久久波多结野| 国产精品一区二区三区四区在线观看| 亚洲一区二区小说| 日韩福利在线观看| 国产精品jk白丝蜜臀av小说| 国产精品巨作av| 精品视频黄色| 国产精选在线| 精品国产不卡一区二区| www.com.cn成人| 图片区亚洲欧美小说区| 亚洲少妇一区| 日韩激情av在线| 国产欧美69| 福利视频一区| 久久久久免费av| 一区在线免费观看| 亚洲精品观看| 国产精品日本一区二区三区在线| 精品国产一区二区三区性色av| 日韩欧美看国产| 久久福利精品| 国产精品一区二区av日韩在线| 国产欧美日韩| 精品三级在线观看视频| 欧美日韩精品免费观看视欧美高清免费大片| 日韩不卡免费高清视频| 欧美大黑bbbbbbbbb在线| 三级欧美韩日大片在线看| 欧美精品影院| 亚洲日本网址| 亚洲最新av| 久久精品九色| 日韩视频中文| 国产精品久久久久久久久免费高清| 中文字幕在线高清| 男女男精品网站| 免费亚洲婷婷| 久久久久中文| 日韩成人av影视| 99国产精品一区二区| 一区二区电影在线观看| 日韩av专区| 免费人成在线不卡| 精品不卡一区| 亚州精品视频| 999国产精品视频| 久久国产乱子精品免费女| 日韩精品不卡一区二区| 在线观看一区| 日韩欧美在线中字| 日韩av中文在线观看| 91tv亚洲精品香蕉国产一区| 美国三级日本三级久久99| 欧美激情在线精品一区二区三区| 亚洲福利久久| 国产精品v一区二区三区| 午夜久久影院| 97视频热人人精品免费| 自拍自偷一区二区三区| 欧美成人基地 | 国产亚洲一区| 亚洲精品一二三区区别| 久久av影视| 日韩中文字幕无砖| 精品一区在线| 精品久久视频| 国产精品香蕉| 中文字幕av亚洲精品一部二部| av在线最新| 国产精品黄网站| 美女国产一区| 精品亚洲美女网站| 国产成人1区| 国产精品日本一区二区不卡视频| 午夜在线播放视频欧美| 欧美日韩在线二区| 午夜精品成人av| 久久精品三级| 国产精品videossex| 日本伊人久久| 亚洲一区不卡| 青草国产精品| 国产精品主播| 国产精品久久777777毛茸茸| 亚洲福利久久| 国产一区二区三区久久久久久久久| 亚洲欧美专区| 亚洲一区有码| 视频在线观看国产精品| 午夜视频精品| 最新亚洲一区| 欧美高清一区| 亚洲国产专区| 欧美69视频| 亚洲女同一区| 日韩欧美中文| 日韩欧美字幕| 91精品xxx在线观看| 国产不卡一区| 亚洲永久av| 天堂8中文在线最新版在线| 欧美好骚综合网| 国产精品二区不卡| 97精品国产| 日韩欧美在线中字| 久久中文字幕二区| 久久一区二区中文字幕| 欧美二区视频| 免费日韩视频| 亚洲精品乱码久久久久久蜜桃麻豆| 夜夜嗨一区二区三区| 亚洲色诱最新| 亚洲ww精品| 国产精品亚洲人成在99www| 国产精品草草| 精品国产乱码| 99精品国产一区二区三区| 国产一区欧美| 日韩影院在线观看| 日韩黄色在线观看| 美女视频黄 久久| 91精品国产乱码久久久久久久| 国产婷婷精品| 7777精品| 伊人久久视频| 国产综合亚洲精品一区二| 综合激情网站| 国语精品一区| 日韩网站在线| 国产精品任我爽爆在线播放| 日韩在线看片| 亚洲精品国产精品粉嫩| 精品国产欧美日韩| 国产亚洲毛片在线| 国产精品亚洲综合色区韩国| 日韩在线短视频| 亚洲美女91| 中文字幕人成乱码在线观看| 三级在线观看一区二区| 久久精品女人| 欧美一区三区| 久久成人亚洲| 国产精品一区二区三区av麻| www.51av欧美视频| 精品一区在线| 国产精品免费不| 午夜精品成人av| 久久亚洲欧洲| 蜜桃视频在线观看一区| 国产一区二区三区四区二区| 久久久久午夜电影| 亚洲综合福利| 欧美伊人久久| 青青久久av| 蜜桃久久久久久| 亚洲爱爱视频| 久久国产三级精品| 97在线精品| 蜜桃av一区二区| 日韩在线网址| 视频一区二区中文字幕| 欧美精品黄色| 久久av一区二区三区| 九九九精品视频| 国产精品av一区二区| 亚洲精品影视| 激情综合五月| 99久久www免费| 婷婷精品在线| 国产日产精品_国产精品毛片| 国产麻豆一区| 九九久久婷婷| 69精品国产久热在线观看| 国产成人免费精品| 久久精品 人人爱| 国精品一区二区三区| 国产日产高清欧美一区二区三区 | 国产拍在线视频| 免费不卡在线观看| 日韩av有码| 日韩三级一区| 神马日本精品| 国产精品成人一区二区不卡| 国产亚洲一区在线| 三级精品视频| 亚洲日本三级| 欧美在线亚洲| 老司机精品视频在线播放| 五月激情久久| 久久香蕉网站| 国产欧洲在线| 99国产精品久久久久久久| 中文字幕成人| 国产字幕视频一区二区| 麻豆精品蜜桃| 日韩和欧美一区二区三区| 国产精品av久久久久久麻豆网| 精品视频高潮|