模型使用(数据库中数据的增加、修改、删除)

基本准备

模型使用步骤
模块(app --> models.py)中创建目标类(数据库中的关系表)--> 接口管理(dbOperatiob --> urls.py)中创建访问连接(浏览器中的访问地址)--> 业务逻辑(app --> views.py)中实现用到的函数(具体对数据库的操作)

创建目标类(只需首次创建,后根据各操作需求再修改什么的,如无需求,则无需修改)

class Poet(models.Model):
    p_name = models.CharField(max_length=10, unique=True, verbose_name='姓名')
    p_sex = models.BooleanField(default=1, verbose_name='性别')
    p_age = models.IntegerField(default=66, verbose_name='年龄')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    operate_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')

创建接口访问地址

from app import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url('create_poet/', views.create_poet),
    url('update_poet/', views.update_poet),
    url('delete_poet/', views.delete_poet),
]

create

from django.http import HttpResponse
from django.shortcuts import render

# 创建诗人信息
from app.models import Poet


def create_poet(request):
    # 第一种方式
    Poet.objects.create(p_name='李白')
    # 第二种方式
    poet = Poet()
    poet.p_name = '杜甫'
    poet.save()
    # 第三种方式
    # poet = Poet('李清照',33,0)
    # poet.save()
    return HttpResponse('创建学生方法')

注:第三种方式需要对Poet类进行初始化(记得super方法的调用,应该是因为继承类之后对属性的操作有些冲突吧,反正不super一下是会报错的)

# def __init__(self, name, sex, age, *args, **kwargs):
    #     super().__init__(*args, **kwargs)
    #     self.p_name = name
    #     self.p_sex = sex if sex else self.p_sex
    #     self.p_age = age if age else self.p_age

一个小技巧:通过设置简化省略python manage.py runserver命令的执行

单击下拉框

设置命令

此时即可通过点击下拉框旁边的绿色小三角代替原来的指令功能

点击运行

进入浏览器访问验证


页面无法找到

想了一下,应该是添加目标类之后需要需要进行数据迁移。数据库中才会有数据关系表,才能进行数据操作。

添加成功

进入数据库中查看

确认添加成功

update

此时数据库中信息

决定将李白的名字改为太白,李清照的年龄改为二八年华

def update_poet(request):
    # 第一种
    # poet = Poet.objects.filter(pk=1).first()
    # poet.p_name = '太白'
    # poet.save()

    # 第二种
    Poet.objects.filter(id=3).update(p_age = 16)

    return HttpResponse('更新诗人信息')

通过浏览器访问实现修改

修改成功

查看数据库验证是否修改成功


修改成功

不知道为什么,Navicat突然一直闪退,就换了SQLyog做验证。

delete

删除杜甫的信息

def delete_poet(request):
    Poet.objects.filter(pk=2).first().delete()
    return HttpResponse('删除诗人信息')

通过浏览器访问删除之后进入数据库验证


删除成功

你可能感兴趣的:(模型使用(数据库中数据的增加、修改、删除))