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 相关文章推荐
Django发送html邮件的方法
May 26 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
Python 3.x 连接数据库示例(pymysql 方式)
Jan 19 Python
详解supervisor使用教程
Nov 21 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
python实现汉诺塔算法
Mar 01 Python
深入了解Django View(视图系统)
Jul 23 Python
Django时区详解
Jul 24 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
使用TensorFlow搭建一个全连接神经网络教程
Feb 06 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
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
vue实现扫码功能
2020/01/17 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
python实现中文输出的两种方法
2015/05/09 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
Python整数对象实现原理详解
2019/07/01 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
python迭代器常见用法实例分析
2019/11/22 Python
护士的岗位职责
2013/12/04 职场文书
高三历史教学反思
2014/01/09 职场文书
触摸春天教学反思
2014/02/03 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
出纳员岗位责任制
2014/02/11 职场文书
团委竞选演讲稿
2014/04/24 职场文书
电子专业自荐信
2014/07/01 职场文书
走进敬老院活动总结
2014/07/10 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
法定授权委托证明书
2015/06/18 职场文书
辞职离别感言
2015/08/04 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers