详解关于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 相关文章推荐
深入分析在Python模块顶层运行的代码引起的一个Bug
Jul 04 Python
socket + select 完成伪并发操作的实例
Aug 15 Python
Python中的探索性数据分析(功能式)
Dec 22 Python
JSON文件及Python对JSON文件的读写操作
Oct 07 Python
解决pyttsx3无法封装的问题
Dec 24 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
Python直接赋值及深浅拷贝原理详解
Sep 05 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 jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
php use和include区别总结
2019/10/13 PHP
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
jquery foreach使用示例
2013/09/12 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
react-native fetch的具体使用方法
2017/11/01 Javascript
nodejs初始化init的示例代码
2018/10/10 NodeJs
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
python实现类的静态变量用法实例
2015/05/08 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
MySQL面试题目集锦
2016/04/14 面试题
工厂厂长岗位职责
2013/11/08 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
网络管理员岗位职责
2015/02/12 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
贷款工作证明模板
2015/06/12 职场文书
师范生小学见习总结
2015/06/23 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js