Django2.1框架 学习笔记 day07


ORM 操作数据库的增删改

增删改

插入数据

def cure(request):
    try:
        book = BookInfo()

        book.btitle = '天龙八部'
        book.bpub_date = '2019-02-01'
        book.save()
        return HttpResponse('添加成功')
    except:
        return HttpResponse('添加失败')

插入数据(键)

def add(request):
    try:
        book = BookInfo.objects.get(btitle='红楼梦')

        info = PersonInfo()
        info.hbook = book
        info.pname = '贾宝玉'
        info.pcomment = '宝玉'
        info.pgender= False

        aaa=info.save()

        print(info.id) #成功会返回当前数据对象
        return HttpResponse('添加成功')
    except:
        return HttpResponse('添加失败')

修改更新数据

def update(request):
    try:
        book = BookInfo.objects.get(btitle='红楼梦')
        book.bpub_date = '2019-02-01'
        book.save()
        return HttpResponse('更新成功')
    except:
        return HttpResponse('更新失败')

删除数据

def delete(request):
    try:
        book = PersonInfo.objects.get(id=1)

        book.delete()
        return HttpResponse('删除成功')
    except:
        return HttpResponse('删除失败')

总结 : 添加更新数据 使用 seve()

            删除数据 使用  delete()


管理器

models,在最上边 添加

class BookInfoManager(models.Manager):
    def all(self):
        return super().all().filter(isDelete=False)

    def addBook(self,bookname,pubdate):

        book = BookInfo()
        book.btitle = bookname
        book.bpub_date = pubdate

        book.save()
        if book.id:
            return True
        else:
            return False


然后添加到  BookInfo 类里

class BookInfo(models.Model):


    # 指定 btitle 对应字段 为title
    btitle = models.CharField(max_length=20, db_column="title")

    bpub_date = models.DateField()  # 发布时间
    bread = models.IntegerField(default=0)  # 阅读量
    bcomment = models.IntegerField(default=0)  # 评论量
    isDelete = models.BooleanField(default=False)  # 逻辑删除

    bpm = BookInfoManager()

就是这一句

bpm = BookInfoManager()

现在到 views 去操作

# 管理器操作
bmp = BookInfoManager
def manger1(request):
    try:
        books = BookInfo.bpm.all()
        res = ''
        for book in books:
            res += book.btitle+','

        return HttpResponse(res)
    except:
        return HttpResponse('查询失败')

def manger2(request):
    try:
        books = BookInfo.bpm.addBook('中国邮政','2019-01-11')
        if books:
            res = '添加成功'
        else:
            res = '添加失败'


        return HttpResponse(res)
    except:
        return HttpResponse('操作失败')

视频 地址 https://www.bilibili.com/video/av45473851/?p=9

代码 

test2.zip




---------------------
作者:前世的我
来源:前世的我
原文:http://www.w55.site/blog/article/look/id/23.html
版权声明:本文为博主原创文章,转载请附上博文链接!