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的Django框架中的URL配置与松耦合
Jul 15 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
用Django实现一个可运行的区块链应用
Mar 08 Python
python实现简易通讯录修改版
Mar 13 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Flask框架模板渲染操作简单示例
Jul 31 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
如何使用python切换hosts文件
Apr 29 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
基于Python 的语音重采样函数解析
Jul 06 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 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
php a simple smtp class
2007/11/26 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python如何为图片添加水印
2016/11/25 Python
用Python实现随机森林算法的示例
2017/08/24 Python
Python OpenCV获取视频的方法
2018/02/28 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
python如何从键盘获取输入实例
2020/06/18 Python
python为什么会环境变量设置不成功
2020/06/23 Python
美国存储和组织商店:The Container Store
2017/08/16 全球购物
巴西宠物商店:Cobasi
2019/04/19 全球购物
Servlet面试题库
2015/07/18 面试题
校本教研工作方案
2014/01/14 职场文书
房屋出租协议书
2014/04/10 职场文书
收款委托书范本
2014/09/11 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
实习指导教师评语
2014/12/30 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
学校运动会通讯稿
2015/07/18 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python