详解关于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实现爬虫统计学校BBS男女比例之多线程爬虫(二)
Dec 31 Python
python3.5仿微软计算器程序
Mar 30 Python
Python 实现12306登录功能实例代码
Feb 09 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
python实现n个数中选出m个数的方法
Nov 13 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python简单实现9宫格图片实例
Sep 03 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 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
IIS6的PHP最佳配置方法
2007/03/19 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
python实现批量修改文件名代码
2017/09/10 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
Python 实现向word(docx)中输出
2020/02/13 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
辩论赛新闻稿
2015/07/17 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
小学作文之描写天气
2019/08/15 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
Django如何与Ajax交互
2021/04/29 Python
基于Python实现股票收益率分析
2022/04/02 Python