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技术站