Django项目之模型增删改查操作(CRUD)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Django项目之模型增删改查操作(CRUD),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4412字,纯文字阅读大概需要7分钟。
内容图文
模型创建之后,Django自动为我们的模型生成了一套完整、方便、高效的API,用来对数据进行增删改查。
接下来我们结合之前创建的Modles来进行介绍,下面是我们的Models代码:
from django.db import models from django.contrib.auth.models import User #导入Django自带用户模块# 文章分类class Category(models.Model): name = models.CharField(‘博客分类‘, max_length=100) index = models.IntegerField(default=999, verbose_name=‘分类排序‘) class Meta: verbose_name = ‘博客分类‘ verbose_name_plural = verbose_name def__str__(self): return self.name #文章标签class Tag(models.Model): name = models.CharField(‘文章标签‘,max_length=100) class Meta: verbose_name = ‘文章标签‘ verbose_name_plural = verbose_name def__str__(self): return self.name #推荐位class Tui(models.Model): name = models.CharField(‘推荐位‘,max_length=100) class Meta: verbose_name = ‘推荐位‘ verbose_name_plural = verbose_name def__str__(self): return self.name #文章class Article(models.Model): title = models.CharField(‘标题‘, max_length=70) excerpt = models.TextField(‘摘要‘, max_length=200, blank=True) category = models.ForeignKey(Category, on_delete=models.DO_NOTHING, verbose_name=‘分类‘, blank=True, null=True) #使用外键关联分类表与分类是一对多关系 tags = models.ManyToManyField(Tag,verbose_name=‘标签‘, blank=True) #使用外键关联标签表与标签是多对多关系 img = models.ImageField(upload_to=‘article_img/%Y/%m/%d/‘, verbose_name=‘文章图片‘, blank=True, null=True) body = models.TextField() user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=‘作者‘) """ 文章作者,这里User是从django.contrib.auth.models导入的。 这里我们通过 ForeignKey 把文章和 User 关联了起来。 """ views = models.PositiveIntegerField(‘阅读量‘, default=0) tui = models.ForeignKey(Tui, on_delete=models.DO_NOTHING, verbose_name=‘推荐位‘, blank=True, null=True) created_time = models.DateTimeField(‘发布时间‘, auto_now_add=True) modified_time = models.DateTimeField(‘修改时间‘, auto_now=True) class Meta: verbose_name = ‘文章‘ verbose_name_plural = ‘文章‘def__str__(self): return self.title
1.基础准备
我们先来配置下URL:
myblog/views.py from django.contrib import admin from django.urls import path from blog import views urlpatterns = [ path(‘admin/‘, admin.site.urls), path(‘orm/‘, views.orm, name=‘orm‘), # 新增 ]
再添加一个与URL对应的视图函数:
from django.shortcuts import render, HttpResponse # Create your views here.def orm(request): return HttpResponse(‘orm‘)
在浏览器中访问http://127.0.0.1:8000/orm/ ,就会在浏览器中看到输入“orm”。我们这么做的目的是一会我们进行数据操作的方法全都写在orm这个视图函数中,这样通过访问URL就可以触发视图函数,从而来验证我们的效果。
2.新增数据(add)
blog/views.py from django.shortcuts import render, HttpResponse from .models import Article # Create your views here.def orm(request): # 增加一篇文章 Article.objects.create(title=‘标题一‘, excerpt=‘摘要一‘, body=‘正文一‘, category_id=4, tui_id=2, user_id=1) return HttpResponse(‘orm‘)
在进行新增操作之前,数据库中文章内容如下:
在浏览器中访问http://127.0.0.1:8000/orm/,触发视图函数orm后,刷新数据库查看效果:
从上面的图中可以看到我们已经成功添加了一篇文章,证明我们新增文章成功。
数据新增的方法有三种:
blog/views.py from django.shortcuts import render, HttpResponse from .models import Article # Create your views here.def orm(request): # 第一种方法:# Article.objects.create(title=‘标题一‘, excerpt=‘摘要一‘, body=‘正文一‘, category_id=4, tui_id=2, user_id=1)# 第二种方法:添加数据,实例化表类,在实例化里传参为字段和值 obj = Article(title=‘标题二‘, excerpt=‘摘要二‘, body=‘正文二‘, user_id=1, category_id=4, tui_id=2, ) # 写入数据库 obj.save() # 第三种方法:将要写入的数据组合成字典,键为字段,值为数据 dic = {‘title‘: ‘标题三‘, ‘excerpt‘: ‘摘要三‘, ‘body‘: ‘正文三‘, ‘category_id‘: ‘4‘, ‘tui_id‘: ‘2‘, ‘user_id‘: ‘1‘} # 添加到数据库,注意字典变量名称一定要加** Article.objects.create(**dic) return HttpResponse(‘orm‘)
使用第二和第三种方法增加数据,刷新页面之后,数据库效果如下:
我们看到,数据库里已经增加了两条数据。
严格来说,增加数据只有两种:create( )方法和save( )方法。一般我们推荐使用第三种方法。
3.删除数据(delete)
from django.shortcuts import render, HttpResponse from .models import Article # Create your views here.def orm(request): # 删除id为8的文章(数据) Article.objects.filter(id=8).delete() return HttpResponse(‘orm‘)
删除之前:
删除之后:
从上图可以看到ID为8的文章已经被删除了。
4.更新数据(update)
from django.shortcuts import render, HttpResponse from .models import Article # Create your views here.def orm(request): # 把id=7的文章标题,修改成‘我是被修改后的标题二‘。将指定条件的数据更新,支持 **kwargs,支持字典。 Article.objects.filter(id=7).update(title=‘我是被修改后的标题二‘) return HttpResponse(‘orm‘)
修改之前:
修改之后:
从上图可以看到ID=7的文章标题被修改成功了!
5.查询数据
from django.shortcuts import render, HttpResponse from .models import Article # Create your views here.def orm(request): # 查询所有数据,查询结果为QuerySet,返回当前表中的所有记录# articles = Article.objects.all()# 使用filter()方法过滤指定条件的记录# article = Article.objects.filter(id=1)# 使用get()方法查询指定条件的记录 article = Article.objects.get(id=1) return HttpResponse(‘orm‘)
Django提供的查询API还有很多,这里就不一一介绍了,后续再整理!
原文:https://www.cnblogs.com/lwjnicole/p/12324448.html
内容总结
以上是互联网集市为您收集整理的Django项目之模型增删改查操作(CRUD)全部内容,希望文章能够帮你解决Django项目之模型增删改查操作(CRUD)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。