详解关于Django中ORM数据库迁移的配置


Posted in Python onOctober 08, 2018

简介

ORM:

关系对象映射。定义一个类自动生成数据库的表结构。

创建数据库的时候,一般有以下几种常用数据类型:数字、字符串以及时间。

ORM分为两种:

  • DB First 数据库里先创建数据库表结构,根据表结构生成类,根据类操作数据库
  • Code First 先写代码,执行代码创建数据库表结构

主流的orm都是code first。django 的orm也是code first,所以学的时候,本质就分为两块:

  • 根据类自动创建数据库表
  • 根据类对数据库表中的数据进行各种操作

手动创建mysql数据库,例如db_Django03

create database root charset=utf8;

1,若想将模型转为mysql数据库中的表,需要在settings中配置:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME':'bms',      # 要连接的数据库,连接前需要创建好
    'USER':'root',


 # 连接数据库的用户名
    'PASSWORD':'',


 # 连接数据库的密码
    'HOST':'127.0.0.1',    # 连接主机,默认本级
    'PORT':3306  
    # 端口 默认3306
  }
}

2,需要激活我们的mysql。然后,启动项目,会报错:no module named MySQLdb 。这是因为django默认你导入的驱动是MySQLdb,可是MySQLdb 对于py3有很大问题,所以我们需要的驱动是PyMySQL 所以,我们只需要找到项目名文件下的init,在里面写入:

import pymysql
pymysql.install_as_MySQLdb()

*注意1,需确保配置文件中的INSTALLED_APPS中写入我们创建的app名称

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  "book"
]

*注意2,如果报错如下:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

MySQLclient目前只支持到python3.4,因此如果使用的更高版本的python,需要修改如下:

通过查找路径C:\Programs\Python\Python36-32\Lib\site-packages\Django-2.0-py3.6.egg\django\db\backends\mysql 这个路径里的文件把

if version < (1, 3, 3):
   raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)

注释掉 就OK了。

*注意3,如果想打印orm转换过程中的sql,需要在settings中进行如下配置:

LOGGING = {
  'version': 1,
  'disable_existing_loggers': False,
  'handlers': {
    'console':{
      'level':'DEBUG',
      'class':'logging.StreamHandler',
    },
  },
  'loggers': {
    'django.db.backends': {
      'handlers': ['console'],
      'propagate': True,
      'level':'DEBUG',
    },
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Pyramid Mako模板引入helper对象的步骤方法
Nov 27 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
Python简单定义与使用二叉树示例
May 11 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
Python 保存矩阵为Excel的实现方法
Jan 28 Python
python实现logistic分类算法代码
Feb 28 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
Mar 26 Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 Python
快速创建python 虚拟环境
Nov 28 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 Python
面向初学者的Python编辑器Mu
Oct 08 #Python
Django 实现购物车功能的示例代码
Oct 08 #Python
一行代码让 Python 的运行速度提高100倍
Oct 08 #Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 #Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 #Python
Python中的函数式编程:不可变的数据结构
Oct 08 #Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 #Python
You might like
php 什么是PEAR?(第二篇)
2009/03/19 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
jQuery总体架构的理解分析
2011/03/07 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python正则表达式match和search用法实例
2015/03/26 Python
Python实现多线程抓取妹子图
2015/08/08 Python
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
python实现比较文件内容异同
2018/06/22 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
实时获取Python的print输出流方法
2019/01/07 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
python标记语句块使用方法总结
2019/08/05 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
Python爬虫与反爬虫大战
2020/07/30 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
金讯Java笔试题目
2013/06/18 面试题
生产部主管岗位职责
2014/01/06 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
2015年酒店工作总结
2015/04/28 职场文书
导游词之上海豫园
2019/10/24 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书