学习笔记——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项目中的cookie

    2022-10-05 得到cookie信息的实例联系: 在子应用中的“views.py”文件: from django.http import HttpResponse def get_cookie(request): cookies = request.COOKIES username = cookies.get(‘username’) return Ht…

    Python开发 2023年4月2日
    00
  • 闭包第2天

    2022-09-10 闭包的使用实例 1 def config_name(name): 2 def inner(msg): 3 print(name + “:” + msg) 4 5 print(id(inner)) 6 return inner 7 8 A = config_name(“A”) 9 B = config_name(“B”) 10 A (“有…

    2023年4月2日
    00
  • 学习笔记——Django项目中的过滤器,模板继承

    2022-10-08 过滤器 过滤器的含义:   过滤器即筛选出我们设定需要的,过滤掉我们不需要的数据。 过滤器使用的场景:   例如:在子应用的“views.py”中的一个类中的函数设置了一个请求在浏览器页面显示“组织内容”,例如:在“组织内容”中设置了一个“birthday:datatime.now()”。在“templates”文件夹中的“index.…

    Python开发 2023年4月2日
    00
  • Django项目中表的查询的操作

    2022-09-29 shell操作:   我在使用中是pycharm与数据库建立连接的一个工具。 使用的环境:   在此处是用在了虚拟环境中。 使用场景:   一般是在创建的表中插入数据后,进行查看,可以代替在“视图”中——“创建一个函数用于请求指定表中的内容,在浏览器中返回”。 在插入表的过程中,有两个新得知的内容:   第一个是,插入语句中,“inse…

    Python开发 2023年4月2日
    00
  • 学习笔记——Django项目的删除数据、查询数据(filter、get、exclude)

    2022-09-30 删除数据: 方式一: 打开pycharm,进入虚拟环境,进入shell环境(python manage.py shell)。 删除数据,接上面的笔记——“学习笔记——Django项目的新增数据、修改数据” 导入模块: from book.models import BookInfo1 查找到要删除的数据: book = BookInfo…

    2023年4月2日
    00
  • 学习笔记——美多商城——1 美多商城项目准备

    2022-10-23 步骤: 一、创建工程仓库 (1)在“码云”上创建一个仓库,在本地盘符中创建一个文件夹,右击,使用git,将远程仓库的内容克隆到本地仓库中,点击“Git Bash Here”。将刚刚创建的远程仓库克隆,使用的命令是“git clone 刚刚远程仓库的地址(点击(克隆/下载)按钮会出现一个网址)”。之后,系统会弹出弹框,要求输入Gitee中…

    Python开发 2023年4月2日
    00
  • 带有参数的装饰器

    2022-09-18 带有参数的装饰器的实质:   因为装饰器是不能在带有参数,所以要定义带有参数的装饰器应该换一种思路。在装饰器的外面套一个函数,使用该函数返回这个装饰器。 带有参数的装饰器的实例: 1 # 装饰器 2 def return_decorator(flag): 3 def decorator(func): 4 def inner(a,b): …

    2023年4月2日
    00
  • 在浏览器中Django项目的静态文件打不开的一个原因

    2022-09-27 问题描述:   编写Django代码时,设置了一个“static”文件夹,在里面放置了一张图片。在“setting”中设置了静态文件在服务器中的存储路径,But 浏览器运行时,显示    找不到,就很奇怪。 问题原因:   之后,在看了一眼代码,发现了一个问题,它是源于一个拼写的错误,如下   发现这个存储位置的拼写少了一个”s”。 其…

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