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自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
Python中生成器和yield语句的用法详解
Apr 17 Python
Python实现的简单算术游戏实例
May 26 Python
python获取目录下所有文件的方法
Jun 01 Python
Python读取数据集并消除数据中的空行方法
Jul 12 Python
python 保存float类型的小数的位数方法
Oct 17 Python
关于PyTorch 自动求导机制详解
Aug 18 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
Python 代码调试技巧示例代码
Aug 11 Python
python中字典增加和删除使用方法
Sep 30 Python
python 通过exifread读取照片信息
Dec 24 Python
Python学习之time模块的基本使用
Jan 17 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
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
PHP fclose函数用法总结
2019/02/15 PHP
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
Python中常见的数据类型小结
2015/08/29 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
python类中super()和__init__()的区别
2016/10/18 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
Python如何读取、写入JSON数据
2020/07/28 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
美国在线购物频道:Shop LC
2019/04/21 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
毕业生自我推荐
2013/11/04 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang