django中的数据库迁移的实现


Posted in Python onMarch 16, 2020

Django是用python写的web开发框架,其特点是:

1.重量级框架,内部封装了很多的功能组件,使开发变的简便快速,

2.MVT模式:前后端分离,高内聚低耦合,m:model,与mvc中的m功能相同,负责和数据库交互,进行数据处理,v:view,与mvc中的c功能相同,接收请求,进行业务处理,返回应答,

t:template,与mvc中的v功能相同,负责封装构造要返回的html。

orm:对象关系映射,主要实现模型对象到数据库数据的映射。

1.首先要在models.py中建立模型类,示例:

django中的数据库迁移的实现

2.在settings.py文件中把models.py所在的子应用也要加入配置项,否则orm数据库无法别识别到

django中的数据库迁移的实现

3.将模型类在admin.py中注册

django中的数据库迁移的实现

4.接下来就是数据库迁移的命令

python manage.py migrate # 根据数据库迁移文件生成对应SQL语句并执行

# 初次执行时为了先把默认Django需要的数据库创建出来

python manage.py makemigrations # 创建数据库迁移文件

# 这次执行是为了创建app中的class模型类的迁移文件

python manage.py

# 将新添加的模型类迁移文件生成对应SQL并执行,实际创建出来对应的表

Django中默认的数据库实sqlite3

django中的数据库迁移的实现

sqlite是一款轻型的数据库,占用资源特别小,大约几百k内存就够了,它能支持windows/linux/unix等主流的操作系统,储存在磁盘文件中的一个完整的数据库,比一些流行的数据库在大部分普通数据库操作要快,简单,轻松的api,独立:没有额外依赖,支持多种开发语言,以二进制形式存储在本地,负载量在10万以下时性能更佳,省掉了对数据库服务器的远程连接甚至会更快

ps:生成迁移和执行迁移

django框架就是一款强大的ORM框架,可以不需要写sql语句就能进行应用开发。

首先需要生成迁移文件,这就“相当于”生成sql语句脚本。

python manage.py makemigrations

这样就生成了迁移文件,在相对应的项目应用中可以看到migrations文件夹下,生成一个新文件

operations = [

    migrations.CreateModel(

      name='BookInfo',

      fields=[

        ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),

        ('btitle', models.CharField(max_length=20)),

        ('bpub_date', models.DateTimeField()),

      ],

    ),

    migrations.CreateModel(

      name='HeroInfo',

      fields=[

        ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),

        ('hname', models.CharField(max_length=20)),

        ('hgender', models.BooleanField()),

        ('hcontent', models.CharField(max_length=100)),

        ('hBook', models.ForeignKey(to='booktest.BookInfo')),

      ],

    ),

  ]

django会默认为每一个表生成一个主键id。

然后,执行迁移。这样才会生成数据库表。

python manage.py migrat

到此这篇关于django中的数据库迁移的实现的文章就介绍到这了,更多相关django 数据库迁移内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现socket端口重定向示例
Feb 10 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
Django实现分页功能
Jul 02 Python
解决Python下imread,imwrite不支持中文的问题
Dec 05 Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 Python
python实现接口并发测试脚本
Jun 25 Python
对Python 中矩阵或者数组相减的法则详解
Aug 26 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
django框架中间件原理与用法详解
Dec 10 Python
python使用re模块爬取豆瓣Top250电影
Oct 20 Python
django之从html页面表单获取输入的数据实例
Mar 16 #Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 #Python
Python Django view 两种return的实现方式
Mar 16 #Python
Python 统计位数为偶数的数字代码详解
Mar 15 #Python
使用pygame编写Flappy bird小游戏
Mar 14 #Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 #Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 #Python
You might like
用文本作数据处理
2006/10/09 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
dess中一个简单的多路委托的实现
2010/07/20 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
javascript中this指向详解
2016/04/23 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
金融专业个人的自我评价
2013/10/18 职场文书
技能比赛获奖感言
2014/02/14 职场文书
企业安全生产标语
2014/06/06 职场文书
新闻编辑求职信
2014/07/13 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
杭白菊导游词
2015/02/10 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
大学副班长竞选稿
2015/11/21 职场文书
护理培训心得体会
2016/01/22 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers