编辑器推荐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
若是没有出现报错,就是没有问题的
以上是咱们数据库的基础配置有问题可私信,你们共同进步