今天来说说web框架Django怎么配置使用数据库,也就是传说中MVC(Model View Controller)中的M,Model(模型)。

简单介绍一下Django中的MVC:

模型(model):定义你的数据库,一般都在models.py文件中。

视图(view):定义你的HTML等静态网页文件相关,也就是那些html、css、js等前端的东西。

控制器(controller):定义你的业务逻辑相关,就是你的主要代码。

正文开始

首先要在你的Django项目中找到两个文件:setting.py、models.py

然后保证你的app要注册到setting里面哟

找到DATABASES处,该处就是配置数据库的地方,然后进行设置:

首先如果是才创建的项目,那么你的DATABASES应该是长这样的:

Django源生默认使用的自带数据库sqlite3。如果你要使用自带的,那你可以完全不用动这里的设置,如果你要使用其他的数据库,更改ENGINE的值即可,比如mysql:django.db.backends.mysql

当我们使用其他数据库时,必须对其他参数进行设置,不然Django可能连不上你指定的数据库,我这里拿mysql来举例

可以看到,多了一些参数,NAME就是你要使用的数据库名字(实现要创建好,不然Django找不到),USER就是数据库登陆账号,然后依次是密码,IP,端口。

到这里setting应该就算是配置完成了,接着打开models.py,进行编辑

最后通过CMD进入到你的Django目录,执行python manage.py makemigrations

再执行python manage.py migrate

成功ok!撒花

如果要进行多数据库配置,研究了一番,终于搞通了,确实要复杂一些。不过也不是很复杂,多了两三个步骤,下面我们一个一个步骤来

首先只需要在DATABASE下继续添加一个字典即可,例如我添加了一个yq,里面写清楚了我这个yq要引用的数据库

然后就是添加路由器DATABASE_ROUTERS和映射DATABASE_APPS_MAPPING

看到了DATABASE_ROUTERS = ['Yq_Djago.database_router.DatabaseAppsRouter']吗,这个就是路由器的地址,意思是用Yq_Djago项目中的database_router文件里面的DatabaseAppsRouter方法

所以我们现在要去这个路径下创建一个database_router.py文件,然后进行如下编辑

from django.conf import settingsDATABASE_MAPPING = settings.DATABASE_APPS_MAPPINGclass DatabaseAppsRouter(object):"""A router to control all database operations on models for differentdatabases.In case an app is not set in settings.DATABASE_APPS_MAPPING, the routerwill 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 Nonedef 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 Nonedef 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 Trueelse:return Falsereturn Nonedef 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) == dbelif model._meta.app_label in DATABASE_MAPPING:return Falsereturn Nonedef allow_migrate(self, db, app_label, model=None, **hints):"""Make sure the auth app only appears in the 'auth_db'database."""if db in DATABASE_MAPPING.values():return DATABASE_MAPPING.get(app_label) == dbelif app_label in DATABASE_MAPPING:return Falsereturn None

最后再在models.py里面指定我们的表运用的是哪个数据,继续拿我自己写的例子举例

最后通过CMD进入到你的Django目录,执行python manage.py makemigrations

然后再创建数据库yq,执行python manage.py migrate --database=yq(不如不写--database就是默认创建default里面的)

打开数据库查看,大功告成!创建的interface和interface2两张表都在里面,撒花!!!

转载于:https://www.cnblogs.com/semishigure/p/7509723.html

Django models数据库配置以及多数据库调用设置相关推荐

  1. Django框架(9.Django中的配置使用MySQL数据库以及页面重定向)

    ORM框架简介 ORM框架还可以通过方便的配置就可以进行数据库的切换 进入虚拟环境,创建一个新的项目,django-admin  startproject test2  (test2为项目名) 创建好 ...

  2. Mac MySQL 数据库配置(关系型数据库管理系统)

    本文已停止更新,点击此链接查看本文最新内容 !!! 前言 MySQL 关系型数据库管理系统. 1.配置准备工作 1)配置数据库准备工作 下载相关软件 mysql-5.7.21-1-macos10.13 ...

  3. Oracle数据库配置方案,oracle数据库各项参数参考配置方案

    1 ORACLE软件 安装规范 1.ORACLE的HOME目录 2 关闭操作系统NUMA 1.是否关闭NUMA 3 oracle内存大小 1.sga_max_size 2.sga_target 3.p ...

  4. Django的ORM映射机制与数据库实战

    一.ORM(Object Relational Mapping) 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存 ...

  5. oracle数据库配置助手来初始化参数,使用服务器参数文件(SPFILE)管理初始化参数...

    传统上,Oracle数据库的初始化参数存储在文本初始化参数文件中.为了更好的可管理性,您可以选择在二进制服务器参数文件中维护初始化参数,该文件在数据库启动和关闭期间保持不变.本节介绍服务器参数文件,并 ...

  6. Java数据库篇1——数据库配置

    Java数据库篇1--数据库配置 1.数据库 数据库(DataBase) 就是存储和管理数据的仓库 本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上 2.数据库的优点 存储方式 优点 缺点 ...

  7. django models 配置

    一, 使用已有视图 场景: 项目中用到了一个视图:DT_users 对应的django models.py配置为: class DT_users(models.Model):...class Meta ...

  8. 经营报表-FineReport配置Oracle外接数据库(2)

    1. 配置外接数据库 1.1 外接数据库配置入口 外接数据库的配置入口,有三种形式: 1)超级管理员第一次登录数据决策系统时,即可为系统配置外接数据库.如下图所示: 2)对于使用内置数据库的系统,管理 ...

  9. PHPCMS_数据库配置

    数据库配置文件位置:caches/configs/database.php 我们打开这个配置文件,加入我们的数据库配置信息.数据库配置信息为二维数组结构,默认为default,可以根据default结 ...

最新文章

  1. ipad如何连接电脑_指纹打卡机如何连接电脑?怎么导出原始考勤数据记录?
  2. 读书笔记 effective c++ Item 16 成对使用new和delete时要用相同的形式
  3. 1.1 向量基本概念
  4. Android之Android Studio常用插件
  5. 使用 IAsyncResult 进行 .NET 异步编程
  6. easyui表单提交,后台获取不到值
  7. 方程组的直接解法和迭代法 python_最小二乘法及python 实现
  8. php 二维数组根据键值合并二维数组_php数组实现根据某个键值将相同键值合并生成新二维数组的方法详解...
  9. SQL Server便利名称
  10. 三维数组地址计算_C语言进阶之路:数据类型 - 多维数组与指针!我的心中只有学习!...
  11. Cheese 游戏编程:第 4 部分 (转自MSDN)
  12. python2中可以使用print()函数吗_Python3中的 print 函数有哪些用法?
  13. linux文件系统与sysfs,Linux设备模型与Sysfs文件系统.doc
  14. 自己写的配筋的Android应用——RCHelper,依据SL191-2008
  15. Echarts地图高亮循环数据展示
  16. IsPostBack详解
  17. 解构领域驱动设计--思维导图
  18. MainMenu中控制点击效果
  19. 俄亥俄大学计算机科学专业,北俄亥俄大学专业都有哪些呢?了解一下!
  20. java循环抓取网页超链接_提取网页中的超链接

热门文章

  1. iOS逆向工程的一些资料
  2. 划分vlan,制作trunk口。使同一vlan能互相通讯
  3. PHP取得json前面有乱码(去除文件头部BOM)
  4. 转巧用notepad++ 批量转换ansi 和 utf8
  5. windows7 下 安装ipython-5.1.0报错
  6. 【转】在Java中连接字符串时是使用+号还是使用StringBuilder StringBuffer 加号
  7. eclipse下运行自定义maven命令
  8. [NOIP1998] 提高组 洛谷P1011 车站
  9. [实战]MVC5+EF6+MySql企业网盘实战(16)——逻辑重构3
  10. ADO.NET连接数据库总结