学习笔记——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项目中的数据库引擎的修改注意点以及级联删除的设置

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

    2023年4月2日
    00
  • 闭包第一天

    2022-09-09 1、闭包的作用: 可以保存外部函数的变量 2、闭包的形成条件 (1)函数嵌套 (2)内部函数使用了外部函数的变量或者参数 (3)外部函数返回内部函数,这个使用了外部函数变量的内部函数称为闭包 3、典例 1 # 函数嵌套 2 def func_out(): 3 # 外部函数 4 num1 = 10 5 6 def func_inner(n…

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

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

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

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

    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-09-24 创建了一个Django项目后,进行测试,输入指令: python manage.py runserver 出现了如下问题:      我还想着,Django模块通过安装“pip install django”导入了好几遍,尝试了几次都是这样。后来发现,是虚拟环境中没有Django模块的文件夹。之后,将之前下载解压的Django文件夹放入…

    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
  • 学习笔记——Django项目中的过滤器,模板继承

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

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