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的动态重新封装的教程
Apr 11 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
详解如何使用Python编写vim插件
Nov 28 Python
Tensorflow 合并通道及加载子模型的方法
Jul 26 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
PyQt5 QListWidget选择多项并返回的实例
Jun 17 Python
django 微信网页授权认证api的步骤详解
Jul 30 Python
python使用opencv实现马赛克效果示例
Sep 28 Python
pycharm 更改创建文件默认路径的操作
Feb 15 Python
python 通过文件夹导入包的操作
Jun 01 Python
Python urllib2运行过程原理解析
Jun 04 Python
python中pop()函数的语法与实例
Dec 01 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 print类函数使用总结
2010/06/25 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
php编程每天必学之验证码
2016/03/03 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
Python中对象的引用与复制代码示例
2017/12/04 Python
Django 实现下载文件功能的示例
2018/03/06 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
计算机本科生自荐信
2013/10/15 职场文书
农救科工作职责
2013/11/27 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
师范生小学见习总结
2015/06/23 职场文书
公司开业主持词
2015/07/02 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript
Redis全局ID生成器的实现
2022/06/05 Redis