学习笔记——Django项目中新增数据、修改数据

2022-09-30

新增数据

方式一:

进入虚拟环境,进入shell工具环境中(“python manage.py shell”),插入数据。在插入数据之前,可以先将要插入的内容写在“views.py”中,,这样做的目的是先写在此处会有代码提示,较为方便。之后将内容放到shell工具中。

首先,先要导入某个表,使用的是ORM模式,因此导入的是一个子应用中的“models”中的一个类。如:

from book.models import BookInfo1

之后插入要新增的数据

book = BookInfo1(
    name = 'python',
    pub_data = "2000-01-01"
)

之后,注意方式一是需要手动保存的,使用的方式

book.save()

插入数据后,使用“win+R”进入终端,输入“cmd”,进入数据库中(mysql -uroot -p),输入密码,进入存放表的数据库中(use test),查看指定表中的数据信息(“select * from book_bookinfo1”)

---------------------------------------------

方式二:

导入模块同上,插入要新增的数据


BookInfo1.objects.create( name = 'java', pub_data = "2000-01-01" )

将上面的代码放置到shell工具中运行,进入shell工具(python manage.py shell)。上面的代码表明已经进行了保存。在终端中数据库中的表中查询会看到。

问题描述:

  在插入数据时,发现了一个问题,有一个“datatime”类型的数据插入时,我插入了一个“2000-01-01”,然后在终端中的数据库查询时,发现它的时间和我插入的时间不是一致的,我以为是没有加时分秒,后来加上也是一样。之后多插了几个数据,发现了规律,它们都减少了8个小时。后来我查询了baidu,看到其他博主有关此问题的解答。

原因分析及问题解决:

  是因为系统默认使用的是美国时间,需要将数据库的默认时间改为“北京时间”。在终端进入数据库后,

查看当前时间的指令:

 select curtime();
 show variables like "%time_zone%";

修改时区时间:

 set global time_zone = '+8:00';
 set time_zone = '+8:00';

刷新生效的指令:

 flush privileges;

之后,修改数据库中表的信息

update book_bookinfo1 set pub_date = "2000-01-01" where name = "python";

  注意:修改指定字段的前面要加上关键字“set”,而且要注意表名要放在“update”之后,不是修改字段的后面。

上面重新设置时区语句比较奇怪,就是一段时间后,在shell中插入一个新的记录还是会出现时间不一致的情况。在终端中重新输入上面的修改时区语句,还是不起作用。暂时只能用最笨的办法,就是给日期手动加8个小时。哎~~

----------------------------------------------------------------------------------

修改数据

方式一:

进入环境,进入shell环境同上,导入模型,先查找到数据,后修改,最后进行保存。例:

from book.models import BookInfo1
book = BookInfo1.objects.get(id = 1)

  啊啊啊啊,姐妹们,一定要注意,此处“BookInfo1”后面是不能加()的,如果加上括号后,相当于给类创建了一个实例变量,后面的代码变成了实例变量的“objects”所有,有问题。啊啊啊,还好找到问题所在了,原来是多了一个括号。我的天呐。我发现一般敲代码,要不然是拼写理解偏差,要不然是多了/少了一个逗号,要不然是上面和下面的逻辑结构一致,直接复制好几回后,改变其中变量后,总有一个没有匹配改好。呜呜呜~~,查bug ,好不容易。

book.readcount = 20000

  这里是选中要修改的记录后,直接给属性赋值修改。而sql中的修改前面是要加“set”的,这里写的时候,“book”后面加了“set”,,,,之后改了。sql中的修改与pycharm中shell中的修改大同小异,但是语句格式还是不一样的,要注意了。

---------------------------

方式二:

前提环境同上,已导入模块

语句:

BookInfo1.objects.filter(id = 3).update(
        readcount = 20 
)

 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:学习笔记——Django项目中新增数据、修改数据 - Python技术站

(0)
上一篇 2023年4月2日 下午4:51
下一篇 2023年4月2日 下午4:51

相关文章

  • 学习笔记——Django项目中请求与响应(json数据)

    2022-10-04 测试json数据与Django项目与pycharm连接,在“postman”软件中。“postman”是一个接口测试软件。下载方式问度娘。 (1)在“postman”中设置“json”连接请求      设置的顺序:设置与pycharm中Django项目建立连接的“URL”路由,之后在左边选择“POST”,后点击“Body”,点击“ra…

    2023年4月2日
    00
  • 装饰器第1天

    2022-09-11 装饰器 装饰器的定义:   装饰器是一种特殊的闭包函数,该闭包函数中有且只有一个参数,且该参数是一个函数类型。 装饰器的作用:   装饰器可以给已有函数添加新的功能。 装饰器的特点(区别与其他函数):   (1)它不会改变原来函数调用的方式。   (2)它不会改变原来函数的源代码。   (3)可以给原来的函数添加新的功能。 与装饰器配合…

    2023年4月2日
    00
  • python中组合数据的操作

    2022-09-26 组合数据类型:  列表     字典     集合     元组 拷贝:     deep(深拷贝)     shallow(浅拷贝)     区别:例如,文件中有一个指针指向另一块存储空间,如果是深拷贝则将指向的那一块文件内容也全部拷贝,如果是浅拷贝那么不需要将指针指向的内容进行拷贝,只拷贝第一层级的内容。指针指向的内容属于第二层级。…

    Python开发 2023年4月2日
    00
  • 创建Django项目

    2022-09-24 在创建Django项目时,出现了    错误,查了一下,发现要创建一个Django项目,需要先使用命令: python -m pip install pytz 安装一个“时区模块”。一般错误提示中出现“xxx”模块没有发现,大概率是要进行安装一个模块或者其他。 之后创建一个Django项目: django-admin startproj…

    2023年4月2日
    00
  • 学习笔记——Django项目中的请求

    2022-10-03 url中的位置参数  位置参数存放的位置   是子应用中的自定义的“urls.py”文件中的路由中。 位置参数的设置:   如果位置参数很多,那么在自定义中的路由文件中可以使用正则表达式。位置参数就是在浏览器搜索中对应的关键词时,能够跳转到相应的界面。界面内容的设置是在子应用的“views.py”页面中。 子应用中的“urls.py”文…

    Python开发 2023年4月2日
    00
  • Django项目中的数据库引擎的修改注意点以及级联删除的设置

    2022-09-29 问题描述: 在“setting.py”的配置文件中修改数据库引擎中,将系统默认的”sqlite3″后缀改为了“sql”。出现问题。 原因分析:    问题查看:  修改后:    —————————————— 上述问题修改后,在“setting”中设置数据库的其他内容(主机、端口、…

    2023年4月2日
    00
  • 学习笔记——Django项目中关联查询以及关联查询的筛选

    2022-10-01 关联查询:   在Django项目中使用ORM模式设置表后,进行关联查询,即两个表直接有联系的查询。 方式:   可以通过主表查询从表,也可以通过从表查询主表。 —————- 方式一实例: (1)查询编号为1的图书中的人物 前提环境,进入pycharm,进入虚拟环境、进入shell环境。 首先,需要导入模块,先查询书…

    Python开发 2023年4月2日
    00
  • 类装饰器

    2022-09-18  类装饰器的定义:   使用一个类作为一个装饰器,在类里面对已有函数添加其他功能。 类装饰器使用的一个实例: 1 class MyDecorator(object): 2 def __init__(self,func): 3 self.__func = func 4 5 def __call__(self, *args, **kwarg…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部