详解关于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类定义的讲解
Nov 01 Python
Python编程中的反模式实例分析
Dec 08 Python
python下读取公私钥做加解密实例详解
Mar 29 Python
Python 2.7中文显示与处理方法
Jul 16 Python
flask中的wtforms使用方法
Jul 21 Python
TensorFlow用expand_dim()来增加维度的方法
Jul 26 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
python SocketServer源码深入解读
Sep 17 Python
Python列表操作方法详解
Feb 09 Python
python程序文件扩展名知识点详解
Feb 27 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 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
ThinkPHP3.1查询语言详解
2014/06/19 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
Python实现模拟登录及表单提交的方法
2015/07/25 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
python入门之基础语法学习笔记
2020/02/08 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
python对execl 处理操作代码
2020/06/22 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
认错检讨书
2014/10/02 职场文书
青年文明号申报材料
2014/12/23 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
个人业务学习心得体会
2016/01/25 职场文书