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实现2014火车票查询代码分享
Jan 10 Python
Python使用matplotlib绘制动画的方法
May 20 Python
python字典基本操作实例分析
Jul 11 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 Python
python 字典修改键(key)的几种方法
Aug 10 Python
python中强大的format函数实例详解
Dec 05 Python
对python列表里的字典元素去重方法详解
Jan 21 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 Python
浅析python中特殊文件和特殊函数
Feb 24 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
js 提交和设置表单的值
2008/12/19 Javascript
日期 时间js控件
2009/05/07 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
详解javascript void(0)
2020/07/13 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
python中ConfigParse模块的用法
2014/09/29 Python
Python import自定义模块方法
2015/02/12 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
使用python实现省市三级菜单效果
2016/01/20 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
倩碧英国官网:Clinique英国
2018/08/10 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
城市精细化管理实施方案
2014/03/04 职场文书
党员干部公开承诺书
2014/03/26 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers