1.struct 簡單介紹 struct 是 Python 的內置模塊, 在使用 socket 通信的時候, 大多數據的傳輸都是以二進位流的形式的存在, 而 struct 模塊就提供了一種機制, 該機制可以將某些特定的結構體類型打包成二進位流的字元串然後再網路傳輸,而接收端也應該可以通過某種機制進行 ...
本文首發於公眾號:Hunter後端
原文鏈接:Django筆記二十二之多資料庫操作
這一篇筆記介紹一下多資料庫操作。
在第十篇筆記的時候,簡單介紹過 using() 的使用方法,多個資料庫就是通過 using(db_alias) 的方式來來指定選中的資料庫,這裡介紹一下同步庫表結構時候的操作。
- 定義方式
- 同步命令
- 指定資料庫操作
1、定義方式
在 settings.py 的 DATABASES 變數中可以定義多個資料庫,如果是多個資料庫,示例如下:
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'users': {
'NAME': 'user_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'superS3cret'
},
'customers': {
'NAME': 'customer_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_cust',
'PASSWORD': 'veryPriv@ate'
}
}
通過 DATABASES 的 key 定義不同資料庫的名稱,使用的時候就可以根據這幾個 key 來連接訪問。
2、同步命令
之前介紹過 migrate 的相關命令,比如:
python3 manage.py migrate
之前的這種操作是因為系統都是使用的預設的資料庫,也就是 default,如果是需要對其他資料庫進行相關 migrate 的操作,需要通過 --database=db_alias 的命令來指定資料庫。
比如需要對 users 資料庫進行表結構的操作,命令如下:
python3 manage.py migrate --database=users
當然,如果我們使用的還是 default 資料庫,那麼加不加 --database 參數都可以。
3、指定資料庫操作
對於資料庫的操作,比如說獲取 Blog 這個 model 的所有數據,如果是 default 資料庫,那麼命令則是:
Blog.objects.all()
而如果這個 model 是指定的其他資料庫,比如 users,那麼使用前需要通過 using(db_alias) 來指定:
db_alias = "users"
Blog.objects.using(db_alias).all()
以及一些其他的操作:
blog = Blog.objects.using(db_alias).get(id=1)
Blog.objects.using(db_alias).filter(id=1).delete()
# 下麵的是新建的保存操作:
obj.save(using=db_alias)
以上就是本篇筆記的全部內容,下一篇將介紹如何使用 model 的條件表達式的搜索,更新等操作。
如果想獲取更多後端相關文章,可掃碼關註閱讀: