編輯器推薦pycharm,有python開發環境,django版本2.0python版本3.0python
1:啓動一個項目,以下圖點擊file選擇new,點擊django的寫入項目名稱便可mysql
2:剛創建好的項目的初始化以下圖sql
3:咱們能夠初始化一個app,python manage.py startapp pools,咱們能夠看到已經生產一個app poolsshell
4: 根據開發的習慣咱們喜歡app放在同一個文件夾下面 方便後期引入使用和修改,因此咱們建立一個apps文件夾來保存咱們的應用,目錄以下圖數據庫
這樣把pools移動到apps裏面去,而且把apps.pools添加到settingsdjango
5:來配置咱們的數據庫,mysql爲例子,首先安裝pymysql pip install pymysql(這個地方插一句,自動安裝的pip 可能不是很好用建議你們網上搜索get-pip.py 經過python get-pip.py來安裝pip)oracle
安裝完pymysql 以後,再settings.py 裏面引入app
引入之後就能夠定義咱們的數據庫了,一樣的出於開發debug方便和後期再settings裏面的引入文件過多咱們須要建一個conf文件下面來存儲咱們每一個須要引入模塊的配置這個conf和settings是同級的,此處不上圖了比較簡單,直接看mysql配置編輯器
DATABASES = {
'default': { #默認配置數據庫名字,多數據時能夠修改
'ENGINE': 'django.db.backends.mysql',
'NAME': '***', #數據庫名
'USER':'***', #數據庫用戶名
'PASSWORD':'***',#數據庫密碼
'HOST': '***',#主機名
'PORT':***,#端口
'CONN_MAX_AGE': None,
'OPTIONS':{'init_command' : "SET sql_mode='STRICT_TRANS_TABLES'",
},
'TEST': {
'CHARSET': 'utf8',
'COLLATION': 'utf8_general_ci',
}
}
}
若是鏈接的事oracle的數據庫,把ENGINE的字段改爲spa
django.db.backends.oracle
若是一個項目中須要鏈接多個數據庫,鏈接名字不能都用默認名字須要不一樣的名字區別
DATABASES = { 'mysqlname': { #默認配置數據庫名字,多數據時能夠修改 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', #數據庫名 'USER':'***', #數據庫用戶名 'PASSWORD':'***',#數據庫密碼 'HOST': '***',#主機名 'PORT':****#端口 }, 'oraclename': { #默認配置數據庫名字,多數據時能夠修改 'ENGINE': 'django.db.backends.oracle', 'NAME': '***', #數據庫名 'USER':'***', #數據庫用戶名 'PASSWORD':'***',#數據庫密碼 'HOST': '***',#主機名 'PORT':***,#端口 }, }
對於多個數據庫映射model的問題對應的
class WebCheckKeyWordGroup(models.Model): class Meta: db_table = "***" app_label = 'oracle' name = models.CharField(max_length=255, null=False, default="", verbose_name="組名")
以上咱們在class Meta裏面添加了app_label
編寫本身的數據庫路由,根據app_label 指向哪個數據庫
class AuthRouter: """ A router to control all database operations on models in the auth application. """ def db_for_read(self, model, **hints): """ Attempts to read auth models go to auth_db. """ if model._meta.app_label == 'oracle': return 'oraclename' return 'default' def db_for_write(self, model, **hints): """ Attempts to write auth models go to auth_db. """ if model._meta.app_label == 'oracle': return 'oraclename' return 'default' def allow_relation(self, obj1, obj2, **hints): """ Allow relations if a model in the auth app is involved. """ if obj1._meta.app_label == 'oracle': return 'oraclename' return 'default' def allow_migrate(self, db, app_label, model_name=None, **hints): """ Make sure the auth app only appears in the 'auth_db' database. """ if app_label == 'oracle': return db == 'oraclename' return 'default'
而後把咱們寫的路由添加到settings裏面就ok
DATABASE_ROUTERS = ['path.to.AuthRouter']
以上配置完咱們的mysql,如何查看咱們的配置沒有問題,打開terminal 運行python manage.py shell
若是沒有出現報錯,就是沒有問題的
以上是咱們數據庫的基礎配置有問題可私信,你們共同進步