django数据库迁移migration实现
作者:苗苗大佬 发布时间:2024-01-12 19:29:43
标签:django,数据库,迁移migration
在django
中,ORM(对象关系映射器—object-relational mapper
)任务是:模型化数据库,创建数据库由另外一个系统负责(迁移–migration
),迁移任务是根据对models.py
文件的改动情况,添加或者删除表和列
依然报错:
models.py
from django.db import models
class Item(models.Model):
? ? text=models.TextField(default='')
tests.py
'''from django.test import TestCase
# Create your tests here.
class Smokeclass(TestCase):
? ? def test_bad_maths(self):
? ? ? ? self.assertEquals(1+1,3)'''''
from ?django.urls import ?resolve
from ?django.test import ?TestCase
from lists.views import ?home_page
from django.http import ?HttpRequest
from lists.models import Item
class HomePageTest(TestCase):
? ? def test_root_url_resolve_to_home_page_view(self):
? ? ? ? found=resolve('/')
? ? ? ? # resolve函数是django内部使用的函数,用于解析url,
? ? ? ? # 并且将其映射到相应的视图函数上,检查网站根路径时"/",
? ? ? ? # 是否能找到home_page函数
? ? ? ? self.assertEquals(found.func,home_page)
? ? def test_home_page_returns_correct_html(self):
? ? ? ? request=HttpRequest()
? ? ? ? # 创建httprequest对象,用户在浏览器中请求网页时
? ? ? ? # django看到的就是httprequest对象
? ? ? ? response=home_page(request)
? ? ? ? # 把对象传给home_page视图
? ? ? ? html=response.content.decode('utf8')
? ? ? ? # 提取content,得到结果是原始的字节,即发个用户
? ? ? ? # 浏览器的0和1,随后调用.decode(),把原始字节
? ? ? ? # 转换成发给用户的html字符串
? ? ? ? self.assertTrue(html.startswith('<html>'))
? ? ? ? self.assertIn('<title>To-Do lists</title>',html)
? ? ? ? self.assertTrue(html.endswith('</html>))
?self.assertTemplateUsed(response,'home.html')
? ? def test_user_home_template(self):
? ? ? ? response=self.client.get('/')
? ? ? ? self.assertTemplateUsed(response,'home.html')
? ? def test_can_save_a_POST_request(self):
? ? ? ? response=self.client.post('/',data={'item_text':'a new list item'})
? ? ? ? self.assertIn('a new list item',response.content.decode())
? ? ? ? self.assertTemplateUsed(response, 'home.html')
class ItemModelTest(TestCase):
? ? def test_saving_and_retrieving_items(self):
? ? ? ? first_item=Item()
? ? ? ? first_item.text="the first list item"
? ? ? ? first_item.save()
? ? ? ? second_item = Item()
? ? ? ? second_item.text = "the second list item"
? ? ? ? second_item.save()
? ? ? ? saved_items=Item.objects.all()
? ? ? ? self.assertEquals(saved_items.count(),2)
? ? ? ? first_saved_item=saved_items[0]
? ? ? ? second_saved_item=saved_items[1]
? ? ? ? self.assertEquals(first_saved_item.text,'the first list item')
? ? ? ? self.assertEquals(second_saved_item.text, 'the second list item')
python manage.py makemigrations
来源:https://blog.csdn.net/weixin_39349045/article/details/123034530
0
投稿
猜你喜欢
- 例子:#!/bin/perlprint "Please input an string and a number by order
- 话说土匪老湿在他的大作 《交互设计之回归篇》 里曝光了上次有意思小组竞赛我们小组分享的话题 “瞬间的快感”,但这一极具噱
- isalnum()方法检查判断字符串是否包含字母数字字符。语法以下是isalnum()方法的语法:str.isa1num()参数
- 实现的功能:在win7下,每天晚上1点,自动将 F:/data中所有文件进行压缩,以[mongodb+日期]命名,将压缩好的文件存储在本地目
- 1.登陆网站,开启开发者模式。可以在浏览器中点击右键检查或者F12打开开发者模式。2.点选 NetWork,DOC,然后刷新页面。在 net
- os.path模块是os模块根据系统类型从另一个模块导入的,并非由os模块实现1、os.path.abspath(相对路径)-----返回对
- 本文实例讲述了python中as用法。分享给大家供大家参考。具体分析如下:import some # some 为一个模组如果想要改变被导入
- 我们都知道DBCC命令有点尴尬,因为你不能在T-SQL查询里调用它们,你也不能关联它们的输出到其它DMV/DMF。例如你想为每个用户会话返回
- JS:$(".con").eq(0).show(); $(".btn span").cl
- 什么是正则表达式?1、正则表达式是检擦、匹配字符串的表达式2、正则表达式是描述规则,主流语言都有良好支持3、字符串校验、查找与替换是正则表达
- 1.学习sql之前回忆一下,什么是变量?变量:能存储数据的值。变量是一块内存空间的表示。数组一连串空间变量是存储数据的容器(通俗讲)2.变量
- 引用Nmap库实现扫描功能,本节课比较简单一看就会。编写环境:Python2.x编写:首先安装Nmap程序,并添加环境变量pip insta
- 本文实例讲述了PHP完全二叉树定义与实现方法。分享给大家供大家参考,具体如下:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1)
- 如下所示:<html xmlns="http://www.w3.org/1999/xhtml"><he
- 目录前言1.什么是锁2.InnoDB存储引擎中的锁2.1锁的类型2.2 一致性非锁定读2.3 一致性锁定读3 锁的算法3.1行锁的3中算法总
- 本文实例讲述了php函数连续调用的方法。分享给大家供大家参考。具体如下:<?php //返回$this,实现连续调用 class xi
- php文件 <?php class xpathExtension{ public static function getNodes($
- MQTT简介MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅
- 像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经
- 面对网络不稳定,页面更新等问题,很可能出现程序异常的问题,所以我们要对程序进行一些异常处理。大家可能觉得处理异常是一个比较麻烦的活,但在面对