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