Django--数据及字段的增删改查

字段的增删改查

# 增
pwd = models.IntegerField(verbose_name="密码",null=True)  # verbose_name说明 ;null可以为空
is_delete = models.CharField(default=0) # 设置为默认值

# 改
直接改代码然后执行数据库迁移命令即可

# 删
注释掉代码然后执行数据库迁移命令即可

数据的增删改查

查询

# 查询1
res = User.objects.filter(name=username)
print(res)  # <QuerySet [<User: User object (1)>]> # 可以看做列表套对象
# 对应的SQL语句: select * from user where name = username
# 查询2
obj = User.objects.filter(name=username,pwd=password).first()
# 对应的SQL语句是: select * from user where name = username and pwd = password 
查询出来是列表的形式,first()是[0]的意思

新增

# insert user(name,pwd,age) values ("tom",123,20)
User.objects.create(name=username, pwd=password,age=age)

查看所有的数据

def home(request):
    # select * from user
    res = User.objects.all()    # 查询所有[obj1,obj2,obj3...]
    return render(request, "home.html",{'user_data':res})

附--HTML关键代码

<table class="table table-bordered table-striped">
    <thead>
        <tr>
            <td>名字</td>
            <td>年龄</td>
            <td>密码</td>
        </tr>
    </thead>
    <tbody>
        {% for user_obj in user_data %}
        <tr>
            <td> {{ user_obj.name }} </td>
            <td> {{ user_obj.age }} </td>
            <td> {{ user_obj.pwd }} </td>
        </tr>
        {% endfor %}
    </tbody>

效果:

修改数据

# 利用orm更新数据库数据  # 注意:这个filter是列表,是批量修改操作
User.objects.filter(id=edit_id).update(name=update_username,pwd=update_pwd,age=update_age)
# 第二种修改方式:
edit_obj.name = update_username
edit_obj.pwd = update_pwd
edit_obj.age = update_age
edit_obj.save()

附1:编辑view视图函数中的--edit方法

def edit(request):
    # 获取用户想要修改的数据的主键值
    edit_id = request.GET.get("edit_id")
    # 利用orm选查询出当前被编辑的对象
    edit_obj = User.objects.filter(id=edit_id).first()

    # 用户往我这个地址发送POST请求,修改
    if request.method == "POST":
        # 拿到数据库数据
        update_username = request.POST.get("username")
        update_pwd = request.POST.get("password")
        update_age = request.POST.get("age")
        # 利用orm更新数据库数据  # 注意:这个filter是列表,是批量修改操作
        # User.objects.filter(id=edit_id).update(name=update_username,pwd=update_pwd,age=update_age)
        # 第二种修改方式:
        edit_obj.name = update_username
        edit_obj.pwd = update_pwd
        edit_obj.age = update_age
        edit_obj.save()
        # 重定向到数据展示页面
        return redirect('/home2/')

    # 将编辑对象展示给用户查看,并支持修改
    return render(request,"edit.html",{"edit_obj":edit_obj})

附2:HTML中home2关键代码

<a href="/edit/?edit_id={{ user_datum.id }}">编辑</a>
可以跳转到指定页面

附3:HTML中的edit关键代码:

<form action="" method="post" enctype="multipart/form-data">
    <p>username:<input type="text" name="username" class="form-control" value={{ edit_obj.name }}></p>
    <p>password<input type="password" name="password" class="form-control" value="{{ edit_obj.pwd }}"></p>
    <p>age<input type="text" name="age" class="form-control" value="{{ edit_obj.age }}"></p>
    <input type="submit" class="btn btn-warning">

</form>

效果:



删除数据

# 利用orm进行删除
User.objects.filter(id=delete_id).delete()

附1: 删除数据的view函数

def delete_func(request):
    # 获取用户想要删除的主键值
    delete_id = request.GET.get("delete_id")
    # 利用orm进行删除
    User.objects.filter(id=delete_id).delete()
    # 重定向到数据展示页面
    return redirect('/home2/')

附2:HTML页面

<a href="/delete/?delete_id={{ user_datum.id }}">删除</a>

作业

整理笔记
自己尝试搭建一个增删改查页面--包含增加

参考资料:

样式参考:https://v3.bootcss.com/css/#tables
知识来源:https://www.cnblogs.com/Dominic-Ji/p/10881214.html

posted @ 2023-05-05 16:08  o蹲蹲o  阅读(271)  评论(0编辑  收藏  举报