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框架中包装视图函数
Jul 20 Python
一波神奇的Python语句、函数与方法的使用技巧总结
Dec 08 Python
深入理解Python对Json的解析
Feb 14 Python
python 对象和json互相转换方法
Mar 22 Python
Python中的Django基本命令实例详解
Jul 15 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
Python输出指定字符串的方法
Feb 06 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 Python
Python 如何测试文件是否存在
Jul 31 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 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
php后台程序与Javascript的两种交互方式
2009/10/25 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
简单介绍Python中的len()函数的使用
2015/04/07 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python:slice与indices的用法
2019/11/25 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
简历中自我评价范文3则
2013/12/14 职场文书
社团活动总结
2014/04/28 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
导游词之安徽九华山
2019/09/18 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技
MySQL 条件查询的常用操作
2022/04/28 MySQL