详解关于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中的格式化输出用法总结
Jul 28 Python
python中学习K-Means和图片压缩
Nov 20 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
python调用百度REST API实现语音识别
Aug 30 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
在python3中实现更新界面
Feb 21 Python
Python+redis通过限流保护高并发系统
Apr 15 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 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
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
Prototype使用指南之base.js
2007/01/10 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
pygame学习笔记(4):声音控制
2015/04/15 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
Python贪心算法实例小结
2018/04/22 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
python 回溯法模板详解
2020/02/26 Python
深入了解Python enumerate和zip
2020/07/16 Python
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
物流合作计划书
2014/01/10 职场文书
红旗渠导游词
2015/02/09 职场文书
Pygame Draw绘图函数的具体使用
2021/11/17 Python
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL