国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐

這篇具有很好參考價值的文章主要介紹了【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐,【Django | 項目開發(fā)】從入門到上線,數(shù)據(jù)庫,前端,django,服務(wù)器,云原生,后端,python

???♂? 個人主頁: @AI_magician
??主頁地址: 作者簡介:CSDN內(nèi)容合伙人,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者。
?????景愿:旨在于能和更多的熱愛計算機的伙伴一起成長!!?????
???♂?聲明:本人目前大學(xué)就讀于大二,研究興趣方向人工智能&硬件(雖然硬件還沒開始玩,但一直很感興趣!希望大佬帶帶)

該文章收錄專欄
?—【Django | 項目開發(fā)】從入門到上線 專欄—?

【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐,【Django | 項目開發(fā)】從入門到上線,數(shù)據(jù)庫,前端,django,服務(wù)器,云原生,后端,python

該文章收錄專欄
?—Django從(圖文并茂輕松上手教程)專欄—???!

??內(nèi)容:
?【Djang | 增刪改查】學(xué)生系統(tǒng)案例?
?【Django | 項目搭建】快速搭建自己的項目?
?【Django | allauth】登錄_注冊_郵箱驗證_密碼郵箱重置?
?【Django | allauth】useprofile 用戶模型擴展?
?【Django | allauth】重寫allauth重置密碼方法?
?【Django | 開發(fā)】面試招聘信息網(wǎng)站(快速搭建核心需求)?
?【Django | 開發(fā)】面試招聘信息網(wǎng)站(增加csv,excel導(dǎo)出&日志管理功能)?
?【Django | 開發(fā)】面試招聘信息網(wǎng)站(處理產(chǎn)品細(xì)節(jié)和權(quán)限&美化頁面樣式)?
?【Django | 開發(fā)】面試招聘信息網(wǎng)站(劃分面試官權(quán)限&集成釘釘消息)?
?【Django | 開發(fā)】面試招聘信息網(wǎng)站(用戶登錄注冊&投在線遞簡歷)?

背景

在實際上,有許多遺留的系統(tǒng),但此時我們?nèi)孕枰芾砥鋽?shù)據(jù),并在不更改其數(shù)據(jù)表結(jié)構(gòu)的情況下,此時我們可以使用多數(shù)據(jù)庫路由實現(xiàn)

【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐,【Django | 項目開發(fā)】從入門到上線,數(shù)據(jù)庫,前端,django,服務(wù)器,云原生,后端,python

假如我們現(xiàn)在有一個mysql的數(shù)據(jù)庫信息,我們需要將其納入管理

配置多數(shù)據(jù)源settings

  1. 創(chuàng)建應(yīng)用用于存放管理
startapp company
  1. settings添加多數(shù)據(jù)庫配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_recruitment',
        'PASSWORD': '123456',
        'PORT': '3306',
        'USER': 'root',
        'HOST': 'db',
        # 'HOST': '127.0.0.1',
        'OPTIONS': {'charset': 'utf8mb4'},
    },  # todo 注意:這里使用的是db別名,docker會自動解析成ip  部署!
    'employee': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'employee',
        'PASSWORD': '123456',
        'PORT': '3306',
        'USER': 'root',
        # 'HOST': '127.0.0.1',
        'HOST': 'db',
        'OPTIONS': {'charset': 'utf8mb4'},
    },
    # 'sqlite': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': BASE_DIR / 'db.sqlite3',
    # }
}
  1. 根據(jù)數(shù)據(jù)庫生成對應(yīng)model

但需要注意是的要為數(shù)據(jù)庫設(shè)置一個ID主鍵不然會報錯(見文章,顯然這里的id就是django默認(rèn)主鍵,還要再app.py中設(shè)置對應(yīng)默認(rèn)主鍵字段),或者修改django中的應(yīng)用,主鍵配置。【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐,【Django | 項目開發(fā)】從入門到上線,數(shù)據(jù)庫,前端,django,服務(wù)器,云原生,后端,python

python manage.py inspectdb --database=employee [12...]  > company/models.py

【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐,【Django | 項目開發(fā)】從入門到上線,數(shù)據(jù)庫,前端,django,服務(wù)器,云原生,后端,python

  1. 創(chuàng)建router數(shù)據(jù)庫路由類并添加到settings

我們既然是多數(shù)據(jù)庫路由,那么在對表進行增刪改查就需要進行區(qū)分,路由類router則充當(dāng)了這個角色

創(chuàng)建路由類

路由必須要有四個函數(shù)

  1. db_for_read 讀
  2. db_for_write 寫
  3. allow_relation 數(shù)據(jù)庫之間鏈接關(guān)系
  4. allow_migrate 是否允許遷移數(shù)據(jù)
"""
setting/routers.py
一個數(shù)據(jù)庫路由是一個擁有4個方法的類
"""


class DatabaseRouter:
    #  設(shè)置 次數(shù)據(jù)庫的應(yīng)用 set
    router_app_labels = {'employee'}

    # 對模型操作
    def db_for_read(self, model, **hints):
        if model._meta.app_label in self.router_app_labels:
            return 'employee'
        return 'default'  # 返回數(shù)據(jù)庫路由

    def db_for_write(self, model, **hints):
        if model._meta.app_label in self.router_app_labels:
            return 'employee'
        return 'default'

    # 不允許數(shù)據(jù)庫之間鏈接關(guān)系
    def allow_relation(self, obj1, obj2, **hints):
        return None

    # 允許遷移
    def allow_migrate(self, db, app_label, model_name=None, **hints):
        if app_label in self.router_app_labels:
            """
            遺留數(shù)據(jù)庫不允許遷移
            """
            return False
        return True

  1. setting添加配置
"""多數(shù)據(jù)庫路由"""
DATABASE_ROUTERS = ['settings.router.DatabaseRouter']
#DATABASE_APPS_MAPPING = {
#    'employee': 'employee',
#}

后臺注冊模型,運行服務(wù)器,查看后臺,設(shè)置成功
【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐,【Django | 項目開發(fā)】從入門到上線,數(shù)據(jù)庫,前端,django,服務(wù)器,云原生,后端,python

問題
由于之前多次配置admin,導(dǎo)致了重定向問題, 這個時候我們只要刷新重啟一下就行(清楚瀏覽器緩存)
【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐,【Django | 項目開發(fā)】從入門到上線,數(shù)據(jù)庫,前端,django,服務(wù)器,云原生,后端,python

參考文獻:
Django中如何實現(xiàn)數(shù)據(jù)庫路由?
多數(shù)據(jù)庫路由(重點)

【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐,【Django | 項目開發(fā)】從入門到上線,數(shù)據(jù)庫,前端,django,服務(wù)器,云原生,后端,python
??到這里,如果還有什么疑問??
??歡迎私信博主問題哦,博主會盡自己能力為你解答疑惑的!??
??如果對你有幫助,你的贊是對博主最大的支持??!??文章來源地址http://www.zghlxwxcb.cn/news/detail-728889.html

到了這里,關(guān)于【W(wǎng)eb開發(fā) | Django】數(shù)據(jù)庫分流之道:探索Django多數(shù)據(jù)庫路由最佳實踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Django后端開發(fā)——mysql數(shù)據(jù)庫連接遇到的問題及解決

    stackflow帖子:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost 報錯: 數(shù)據(jù)庫拒絕root用戶的連接 settings.py中關(guān)于數(shù)據(jù)庫的配置: 可以看到root用戶的密碼為123456 但是在mysql數(shù)據(jù)庫里面查看用戶信息,root的密碼為空 這樣的不匹配導(dǎo)致連接失敗 之前嘗試

    2024年02月20日
    瀏覽(95)
  • 二擋起步——pythonweb開發(fā)Django框架,前端原生+Django后端框架+python網(wǎng)絡(luò)抓包(代替數(shù)據(jù)庫數(shù)據(jù))(附帶小案例)

    二擋起步——pythonweb開發(fā)Django框架,前端原生+Django后端框架+python網(wǎng)絡(luò)抓包(代替數(shù)據(jù)庫數(shù)據(jù))(附帶小案例)

    ?大家好,我是csdn的博主: lqj_本人 這是我的個人博客主頁: lqj_本人的博客_CSDN博客-微信小程序,前端,python領(lǐng)域博主 lqj_本人擅長微信小程序,前端,python,等方面的知識 https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343 嗶哩嗶哩歡迎關(guān)注: 小淼Develop 小淼Develop的個人空間-小淼Develop個

    2024年02月03日
    瀏覽(109)
  • Web開發(fā)3:數(shù)據(jù)庫使用

    Web開發(fā)3:數(shù)據(jù)庫使用

    歡迎來到Web開發(fā)系列的第三篇!今天我們將探討如何在Web開發(fā)中使用數(shù)據(jù)庫。數(shù)據(jù)庫是存儲和管理數(shù)據(jù)的重要工具,它在現(xiàn)代應(yīng)用程序中起著至關(guān)重要的作用。無論是社交媒體應(yīng)用、電子商務(wù)平臺還是博客網(wǎng)站,數(shù)據(jù)庫都是不可或缺的一部分。 首先,讓我們來了解一下數(shù)據(jù)庫

    2024年01月23日
    瀏覽(21)
  • 微信小程序+web數(shù)據(jù)庫的開發(fā)實踐

    生活中使用微信小程序的場景越來越多,它實現(xiàn)了用戶對于應(yīng)用“觸手可及、用完即走”的理想需求。微信小程序的開發(fā)難度也低于APP的開發(fā)制作,使用它會更便利、低成本、高經(jīng)濟效益。 但是要完成一個小程序涉及到的技術(shù)棧比較多,要開發(fā)的模塊也很多。比如: 微信小

    2024年02月15日
    瀏覽(21)
  • PostgreSQL修煉之道之?dāng)?shù)據(jù)庫優(yōu)化(十八)

    PostgreSQL修煉之道之?dāng)?shù)據(jù)庫優(yōu)化(十八)

    12.1.1 數(shù)據(jù)庫優(yōu)化準(zhǔn)則 ????????數(shù)據(jù)庫優(yōu)化的思路有很多種。比較常用的是下面兩種優(yōu)化思路。 第一種思路:有人說過,“The fastest way to do something is don\\\'t do it”,意思是說,“做得最快的方法就是不做”。從這個思路上來說,把一些無用的步驟或作用不大的步驟去掉就是

    2024年02月10日
    瀏覽(20)
  • Java開發(fā)者的Python快速實戰(zhàn)指南:探索向量數(shù)據(jù)庫之圖像相似搜索-文字版

    Java開發(fā)者的Python快速實戰(zhàn)指南:探索向量數(shù)據(jù)庫之圖像相似搜索-文字版

    首先,我要向大家道個歉。原本我計劃今天向大家展示如何將圖片和視頻等形式轉(zhuǎn)換為向量并存儲在向量數(shù)據(jù)庫中,但是當(dāng)我查看文檔時才發(fā)現(xiàn),騰訊的向量數(shù)據(jù)庫尚未完全開發(fā)完成。因此,今天我將用文本形式來演示相似圖片搜索。如果您對騰訊的產(chǎn)品動態(tài)不太了解,可以

    2024年02月05日
    瀏覽(101)
  • ????Java開發(fā)者的Python快速實戰(zhàn)指南:探索向量數(shù)據(jù)庫之圖像相似搜索-文字版

    ????Java開發(fā)者的Python快速實戰(zhàn)指南:探索向量數(shù)據(jù)庫之圖像相似搜索-文字版

    首先,我要向大家道個歉。原本我計劃今天向大家展示如何將圖片和視頻等形式轉(zhuǎn)換為向量并存儲在向量數(shù)據(jù)庫中,但是當(dāng)我查看文檔時才發(fā)現(xiàn),騰訊的向量數(shù)據(jù)庫尚未完全開發(fā)完成。因此,今天我將用文本形式來演示相似圖片搜索。如果您對騰訊的產(chǎn)品動態(tài)不太了解,可以

    2024年02月05日
    瀏覽(98)
  • Python Flask Web開發(fā)二:數(shù)據(jù)庫創(chuàng)建和使用

    Python Flask Web開發(fā)二:數(shù)據(jù)庫創(chuàng)建和使用

    數(shù)據(jù)庫在 Web 開發(fā)中起著至關(guān)重要的作用。它不僅提供了數(shù)據(jù)的持久化存儲和管理功能,還支持?jǐn)?shù)據(jù)的關(guān)聯(lián)和連接,保證數(shù)據(jù)的一致性和安全性。通過合理地設(shè)計和使用數(shù)據(jù)庫,開發(fā)人員可以構(gòu)建強大、可靠的 Web 應(yīng)用程序,滿足用戶的需求。這里介紹:SQLAlchemy 安裝pymysql和

    2024年02月10日
    瀏覽(101)
  • 深入解析MVCC:多版本并發(fā)控制的數(shù)據(jù)庫之道

    目錄 引言 一、什么是MVCC? 二、MVCC的實現(xiàn)原理 2.1版本號 2.1.1版本號的作用: 2.1.2版本號的組成: 2.1.3.示例 2.2事務(wù)id 2.2.1事務(wù)ID的作用: 2.2.2事務(wù)ID的生成: 2.2.3示例: 2.3 快照(Snapshot) 2.3.1快照的作用: 2.3.2快照的實現(xiàn)方式: 2.3.3示例: 2.4版本鏈(Version Chain) 2.4.1版本鏈

    2024年01月24日
    瀏覽(28)
  • java web 開發(fā) 第8章 JSP中使用數(shù)據(jù)庫

    目錄 連接MySQL數(shù)據(jù)庫 查詢記錄 更新、添加與刪除記錄 用結(jié)果集操作數(shù)據(jù)庫中的表 預(yù)處理語句 事務(wù) 分頁顯示記錄 在JSP中連接MySQL數(shù)據(jù)庫的步驟如下: 1. 下載并安裝MySQL數(shù)據(jù)庫,啟動MySQL服務(wù)。 2. 在MySQL中創(chuàng)建一個數(shù)據(jù)庫和表,用于存儲數(shù)據(jù)。可以使用MySQL自帶的命令行工具或

    2024年02月06日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包