django如何连接已存在数据的数据库


Posted in Python onAugust 14, 2018

你有没有遇到过这种情况?

数据库,各种表结构已经创建好了,甚至连数据都有了,此时,我要用Django管理这个数据库,ORM映射怎么办???

Django是最适合所谓的green-field开发,即从头开始一个新的项目

但是呢,Django也支持和以前遗留的数据库和应用相结合的。

Django的数据库层从Python代码生成SQL schemas。但是对于遗留的数据库,你已经用于SQL schemas,这种情况下你需要为你已经存在的数据库表写模型(为了使用数据库的API),幸运的是,Django自带有通过阅读你的数据库表规划来生成模型代码的辅助工具 manage.py inspectdb

1.Django默认使用的是sqllit数据库?如何使用MySQL数据库?

#修改setting.py文件

DATABASE = {
  'default':{
    'ENGINE':'django.db.backends.mysql',
    'NAME':'数据库名',
    'HOST':'数据库地址',
    'PORT':端口,
    'USER':'用户名',
    'PASSWORD':'密码',
  }
}
#由于Django内部链接MySQL数据库的时候默认的是使用MySQLdb的
#但是Python3中没有这个模块
#所以我们要去修改他的project同名文件夹下的__init__文件

import pymysql
pymysql.install_as_MySQLdb()

然后呢,我们就需要根据数据库去自动生成新的models文件

python manage.py inspectdb  #简单可以看一下自动映射成的models中的内容

导出并且去代替models.py

python manage.py inspectdb > models.py

这样你就会发现在manage.py的同级目录下生成了一个models.py文件

使用这个models.py文件覆盖app中的models文件。

如果完成了以上的操作,生成的是一个不可修改/删除的models,修改meta class中的managed = True则可以去告诉django可以对数据库进行操作

django如何连接已存在数据的数据库

此时,我们再去使models.py和数据库进行同步

python manage.py migrate

这个时候就已经大功告成了!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
Python使用稀疏矩阵节省内存实例
Jun 27 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
利用Python中的mock库对Python代码进行模拟测试
Apr 16 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Django实现的自定义访问日志模块示例
Jun 23 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
Python requests HTTP验证登录实现流程
Nov 05 Python
python中使用.py配置文件的方法详解
Nov 23 Python
浅谈Python xlwings 读取Excel文件的正确姿势
Feb 26 Python
python 字典和列表嵌套用法详解
Jun 29 Python
Python requests库用法实例详解
Aug 14 #Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 #Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 #Python
django+xadmin+djcelery实现后台管理定时任务
Aug 14 #Python
Python延时操作实现方法示例
Aug 14 #Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 #Python
python 实现A*算法的示例代码
Aug 13 #Python
You might like
php 删除cookie和浏览器重定向
2009/03/16 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
laravel自定义分页效果
2017/07/23 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
python 系统调用的实例详解
2017/07/11 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
python 循环数据赋值实例
2019/12/02 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
护士自我评价
2014/02/01 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
平面设计专业求职信
2014/08/09 职场文书
公证委托书格式
2014/09/13 职场文书
校园之声广播稿
2015/08/18 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android