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 相关文章推荐
RC4文件加密的python实现方法
Jun 30 Python
Python 功能和特点(新手必学)
Dec 30 Python
python字符串,数值计算
Oct 05 Python
python pandas库中DataFrame对行和列的操作实例讲解
Jun 09 Python
解决python3 urllib 链接中有中文的问题
Jul 16 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
python文件排序的方法总结
Sep 13 Python
利用Python过滤相似文本的简单方法示例
Feb 03 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
5款非常棒的Python工具
2018/01/05 Python
快速了解python leveldb
2018/01/18 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
信息管理专业学生自荐信格式
2013/09/22 职场文书
法律专业个人实习自我鉴定
2013/09/23 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
优秀毕业生求职信
2014/06/05 职场文书
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android