实战Django之Model常用操作之单表增删改查
2019-01-21 18:50
465 查看
版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/Burgess_zheng/article/details/86580306
目录篇:Django之model操作ORM目录篇 点击跳转
主篇:Django之Model常用操作之单表常用增删改查【ORM篇三】点击跳转
目录
建立表类
django建表流程:实战之Django之Model建表流程 https://blog.csdn.net/Burgess_zheng/article/details/86564984
路径:project/app/models.py
[code]from django.db import models #UserGroup(组表) class UserGroup(models.Model): uid = models.AutoField(primary_key=True) #创建一个自增的列(主键)如果不写:默认是也有自增列,该列的字段名:id caption = models.CharField(max_length=32) ctime = models.DateTimeField(auto_now_add=True,null=True) #auto_now_add=True 创建数据的时候,该列不用加,自动生成当前时间 uptime = models.DateTimeField(auto_now=True, null=True) #auto_now 更新数据的时候该列自动生成更改的当前时间 #但是下面这种更改数据,auto_now该列还是不会生效 #UserInfo(用户表) class UserInfo(models.Model): #默认字段字段ID 且是主键 username =models.CharField(max_length=32,blank=True,verbose_name='用户名') # 用户名列,字符串类型,指定长度32字符 #(如果是数字类型models.IntergerFiled无需指定长度,否则报错) password = models.CharField(max_length=60,editable=False) # 密码名列,字符串类型,指定长度64字符 email = models.CharField(max_length=60,help_text='邮箱') test = models.EmailField(max_length=19,null=True) #只支持邮箱格式(django的admin有效) #test = models.URLField(max_length=19, null=True) #只支持URL格式(django的admin有效) #test = models.GenericIPAddressField(max_length=19, null=True) #只支持IPV4和IPV6格式 #gender = models.CharField(max_length=60,null=True) user_type_choices = (#变量=元组嵌套元组,是存放在内存里面的 (1,'超级用户'), (2,'普通用户'), (3,'普普通通用户'), ) user_type_id = models.IntegerField(choices=user_type_choices,default=1) #该字段引用了上面的嵌套元组 IntegerField:数字类型,默认值都是1超级用户 user_group = models.ForeignKey("UserGroup",to_field='uid',default=1,on_delete=models.CASCADE) #该字段UserGroup表的主键uid进行关联 to_field='uid'不写默认就是关联UserGroup表的主键 #只要是外键的字段,我们数据库生产表的时候,字段名字会自动变 user_group_id #user_group_id 该字段作用:查询UserInfo表的该字段的值 #user_group 该字段作用:UserInfo表每行数据外键所关联UserGroup的主)的数据可被查询进入项目目录下执行以下面命令(创建表 or 重新生成表结构)
python manage.py makemigrations
python manage.py migrate
根据已建立好的类表进行django的shell命令行操作常用增删改查
进入项目目录(执行如下命令进行django提供的shell命令行)
F:\Burgess\Python\pycharm实验脚本\test\project_burgess>python manage.py shell
增:[code]>>> from modes_handle import models >>> obj = models.UserGroup.objects.create(caption='IT') >>> obj = models.UserGroup(caption='EC') >>> obj.save() >>> dict={'caption':'NC'} >>> models.UserGroup.object.create(**dict)sqlite可视化查看数据库
改:
[code]>>> models.UserGroup.objects.update(caption='BURGESS') >>> models.UserGroup.objects.filter(uid=1).update(caption='ONE') >>> models.UserGroup.objects.filter(uid__gt=2).update(caption='THREE') >>> models.UserGroup.objects.filter(uid=2,caption='BURGESS').update(caption='TWO') >>> obj=models.UserGroup.objects.get(uid=1) >>> obj.caption = 'ONEAGAIN' >>> obj.save()
sqlite可视化查看数据库
查:
[code]>>> result = models.UserGroup.objects.all() >>> for obj in result: ... print(obj.uid,obj.caption,obj.ctime,obj.uptime) ... 1 ONEAGAIN 2019-01-21 10:05:38.861328+00:00 2019-01-21 10:24:39.355468+00:00 2 TWO 2019-01-21 10:05:59.066406+00:00 2019-01-21 10:05:59.066406+00:00 3 THREE 2019-01-21 10:07:17.449218+00:00 2019-01-21 10:07:17.449218+00:00 >>> result1 = models.UserGroup.objects.filter(caption='TWO') >>> for obj in result1: ... print(obj.uid,obj.caption,obj.ctime,obj.uptime) ... 2 TWO 2019-01-21 10:05:59.066406+00:00 2019-01-21 10:05:59.066406+00:00 >>> print(result1.query) SELECT "modes_handle_usergroup"."uid", "modes_handle_usergroup"."caption", "modes_handle_usergroup"."ctime", "modes_handle_usergr oup"."uptime" FROM "modes_handle_usergroup" WHERE "modes_handle_usergroup"."caption" = TWO删:
[code]>>> models.UserGroup.objects.filter(uid=2).delete() (1, {'modes_handle.UserInfo': 0, 'modes_handle.UserGroup': 1}) >>> models.UserGroup.objects.all().delete() (2, {'modes_handle.UserInfo': 0, 'modes_handle.UserGroup': 2})sqlite可视化查看数据库
目录篇:Django之model操作ORM目录篇 点击跳转
主篇:Django之Model常用操作之单表常用增删改查【ORM篇三】点击跳转
相关文章推荐
- Django之Model常用操作之单表增删改查【ORM篇三】
- 实战Django之Model操作之一对多外键(ForeignKey)正反调用
- 实战Django之Model操作之 prefetch_related()查询的优化(二)
- 实战Django之Model操作之select_related 和 prefetch_related最佳实践(三)
- Django-Model操作数据库(增删改查、连表结构)
- Django之Model的表类和字段对象的一些常用操作【ORM篇十】
- Django-Model操作数据库(增删改查、连表结构)
- sharepoint 2010 自定义列表数据的增删改查常用操作 server object model
- phalcon Model模型的基本使用与常用操作(增删改查)
- Django-Model操作数据库(增删改查、连表结构)
- Django-Model操作数据库(增删改查、连表结构)
- Django-Model操作数据库(增删改查、连表结构)
- 实战Django之Model操作之多对多(ManyToMany)正反调用
- Django-Model操作数据库(增删改查、连表结构)
- 实战Django之Model操作之单表及跨表(双下划线)的3种不同方式获取数据(queryset对象列表、字典、元祖)
- Django-Model操作数据库(增删改查、连表结构)
- 实战Django之Model操作之一对一外键(OneToOneField\ForeignKey)正反调用
- sharepoint 2010 自定义列表数据的增删改查常用操作 server object model
- Django-Model操作数据库(增删改查、连表结构)
- Django-Model操作数据库(增删改查、连表结构)