详解关于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下使用状态机的教程
Apr 11 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
python实现requests发送/上传多个文件的示例
Jun 04 Python
python 异或加密字符串的实例
Oct 14 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
python字典的遍历3种方法详解
Aug 10 Python
浅析python标准库中的glob
Mar 13 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
简单了解Django项目应用创建过程
Jul 06 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 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
实用函数10
2007/11/08 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
python如何查看系统网络流量的信息
2016/09/12 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
电子专业毕业生自我鉴定
2014/01/22 职场文书
行政前台岗位职责
2015/04/16 职场文书
分享几个实用的CSS代码块
2022/06/10 HTML / CSS