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网络编程中urllib2模块的用法总结
Jul 12 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
python实现图书管理系统
Mar 12 Python
对python中的logger模块全面讲解
Apr 28 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
pyside+pyqt实现鼠标右键菜单功能
Dec 08 Python
python实现接口并发测试脚本
Jun 25 Python
python logging添加filter教程
Dec 24 Python
Pytorch上下采样函数--interpolate用法
Jul 07 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
Python 用__new__方法实现单例的操作
Dec 11 Python
python利用文件时间批量重命名照片和视频
Feb 09 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
一次编写,随处运行
2006/10/09 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
Smarty变量用法详解
2016/05/11 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
详解Python中的format格式化函数的使用方法
2019/11/20 Python
django迁移文件migrations的实现
2020/03/31 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
咖啡馆创业计划书
2014/01/26 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
实用的简历自我评价
2014/03/06 职场文书
司机岗位职责说明书
2014/07/29 职场文书
研修心得体会
2014/09/04 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
教师节表彰会主持词
2015/07/06 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技