django数据库迁移

在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>'))
    def test_home_page_returns_correct_html_chonggou(self):
        response=self.client.get('/')
        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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django数据库迁移是指在使用Django框架开发应用时,对数据库模型的变更进行同步的过程。可以通过在终端运行命令`python manage.py makemigrations`来生成数据库迁移文件,并通过`python manage.py migrate`来应用这些数据库迁移文件。 为了进行数据库迁移,首先需要在项目的settings.py文件中配置数据库连接信息,包括数据库类型、数据库名称、用户名、密码、主机和端口等。例如,可以使用MySQL作为数据库并在settings.py中配置相关信息。 其次,需要在项目中新建app,并通过在settings.py文件中注册该app。然后,可以通过运行命令`python manage.py makemigrations app_name`来为该app生成数据库迁移文件。 在执行数据库迁移前,需要确保已经在数据库中创建了对应的数据库。可以通过工具如Navicat在数据库中新建数据库。 执行数据库迁移的命令`python manage.py migrate`会将数据库模型的变更应用到数据库中,从而实现数据库结构的更新。 当执行完成数据库迁移后,数据库就会与项目中的模型定义保持同步。这样,就可以在项目中对数据库进行操作,并确保数据库的结构和数据的一致性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [django迁移数据库错误问题解决](https://download.csdn.net/download/weixin_38730977/12861095)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [django数据迁移](https://blog.csdn.net/lyhwhitewhale/article/details/125190719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值