成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:203日期: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
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
成人爱爱电影网址| 色噜噜狠狠成人网p站| 亚洲激情一区二区| 久久久久久久综合日本| 午夜电影一区二区| 99国产精品99久久久久久粉嫩| 在线观看日韩av电影| 欧美国产日产图区| 欧美激情1区2区| 精品盗摄一区二区三区| 国产在线精品一区二区不卡了 | 色综合久久综合网| 精品久久久久av影院| 国产成人福利片| 日韩一区二区免费电影| 高清beeg欧美| 精品粉嫩超白一线天av| 波多野结衣中文字幕一区| 精品免费99久久| 欧美阿v一级看视频| 久久久久久亚洲综合影院红桃| 成人av免费网站| 69久久夜色精品国产69蝌蚪网| 精品一区二区三区久久| 欧美性猛片xxxx免费看久爱| 韩国成人在线视频| 91精品国产全国免费观看| 亚洲人成精品久久久久| 日韩欧美精品在线| 国产自产精品| 欧美性猛片aaaaaaa做受| 裸体健美xxxx欧美裸体表演| 另类天堂av| 日产精品久久久久久久性色| 极品美女销魂一区二区三区| 色呦呦网站一区| 欧美激情一区三区| 精品国产一区二区亚洲人成毛片| 成人小视频在线观看| 欧美tk—视频vk| 99久久综合狠狠综合久久| 国产清纯在线一区二区www| 亚洲无线视频| 一区二区三区免费看视频| 亚洲永久视频| 另类调教123区| 欧美一区中文字幕| 成人免费黄色在线| 国产精品久久毛片a| 免费一级欧美片在线播放| 国产亚洲综合色| 国产精品二区三区四区| 亚洲午夜国产一区99re久久| 欧美性受xxxx黑人xyx性爽| 国内精品久久久久影院薰衣草| 日韩精品一区国产麻豆| 91丨九色丨蝌蚪富婆spa| 国产精品美女久久久久久久| 亚洲资源av| 久久激情综合网| 精品久久久久久无| 黄色成人在线网站| 午夜精品一区在线观看| 91精品国产丝袜白色高跟鞋| 欧美freesex交免费视频| 亚洲成在人线免费| 日韩欧美色综合网站| 极品中文字幕一区| 紧缚奴在线一区二区三区| 精品91自产拍在线观看一区| 99在线|亚洲一区二区| 精品一区二区久久久| 久久免费偷拍视频| 午夜一级久久| 粉嫩绯色av一区二区在线观看| 国产精品三级视频| 色一情一乱一乱一91av| 国产河南妇女毛片精品久久久 | 亚洲第一二三四区| 日韩一区二区中文字幕| 亚洲国产午夜| 国产在线不卡视频| 中文字幕在线观看一区| 欧美视频中文一区二区三区在线观看| 午夜国产一区| 久久爱www久久做| 一色屋精品亚洲香蕉网站| 欧美日韩极品在线观看一区| 亚洲电影专区| 国产91精品一区二区| 亚洲一区二区黄色| 欧美电影免费观看完整版| 国产美女诱惑一区二区| 国产高清不卡一区二区| 一区二区三区在线不卡| 欧美v国产在线一区二区三区| 香蕉久久夜色| 欧美人成在线| 国产成人一级电影| 天天色综合成人网| 国产精品视频在线看| 欧美精品高清视频| 免费h精品视频在线播放| 欧美一区激情视频在线观看| 精品亚洲porn| 亚洲国产另类精品专区| 久久久久久麻豆| 欧美视频你懂的| 99精品欧美一区二区三区| 成人一区在线观看| 日韩福利视频导航| 国产精品灌醉下药二区| 欧美一区午夜视频在线观看 | 久久久www免费人成精品| 欧美性色aⅴ视频一区日韩精品| 亚洲黄色高清| www.综合网.com| 精品一区二区在线观看| 亚洲国产精品麻豆| 久久精品一区二区| 制服丝袜国产精品| 久久国产66| 极品尤物久久久av免费看| 丁香婷婷综合激情五月色| 日本va欧美va欧美va精品| 亚洲色图20p| 国产欧美在线观看一区| 91麻豆精品国产91久久久更新时间 | 国产麻豆精品在线| 亚洲综合色视频| 国产精品嫩草久久久久| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩精品一区二区三区蜜桃| 性8sex亚洲区入口| 亚洲精品日本| 亚洲视频中文| 欧美巨乳波霸| 色综合久久综合中文综合网| 成人深夜在线观看| 国产精品影音先锋| 精品午夜久久福利影院| 日本欧美大码aⅴ在线播放| 亚洲高清在线视频| 亚洲黄色免费电影| 国产精品电影院| 国产日韩欧美激情| 久久久亚洲午夜电影| 精品国产露脸精彩对白| 日韩一级大片在线| 91精品国产91久久久久久最新毛片| 欧美色网站导航| 欧日韩精品视频| 色噜噜偷拍精品综合在线| 免费永久网站黄欧美| 国产婷婷精品| 国产亚洲毛片| 校园激情久久| 久久久精品五月天| 久久久精品网| 老司机亚洲精品| 色香蕉久久蜜桃| 91电影在线观看| 在线观看国产日韩| 欧美日韩在线直播| 欧美日韩一区三区| 3d动漫精品啪啪| 精品久久久久久亚洲综合网| 欧美精品一区二区三区在线 | 欧美日韩一区综合| 色综合久久综合网97色综合| 99视频有精品| 91在线观看免费视频| 成人aa视频在线观看| aaa亚洲精品一二三区| 欧美成人69| 黄色成人在线网址| 国产精品久久久久久久久久妞妞| 欧美中文字幕| 色噜噜久久综合| 欧美日韩一二三| 91久久一区二区| 欧美日韩另类国产亚洲欧美一级| 欧美喷水一区二区| 日韩欧美国产麻豆| 精品sm捆绑视频| 国产日产精品1区| 一区二区中文视频| 亚洲精品中文字幕在线观看| 一区二区三区精品视频在线| 亚洲mv在线观看| 久久精品国产99| 成人免费视频一区| 欧美日韩国产一区精品一区| 9国产精品视频| 色天天综合色天天久久| 欧美剧在线免费观看网站 | 91偷拍与自偷拍精品| 极品日韩久久| 蜜桃久久av| 666欧美在线视频|