60 Django项目 单表(出版社)的增删改查
Posted gyh412724
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了60 Django项目 单表(出版社)的增删改查相关的知识,希望对你有一定的参考价值。
主要内容:
1 . 常用的orm查询语句
查询: 类名.objects.all() # 查询全部,返回一个列表
类名.objects.filter() # 根据条件查询,返回一个列表
类名.objects.get() # 根据条件查询, 获得一个对象
增加: 类名. objects.create(name=‘‘) # 创建一个对象,返回的就是刚才创建的对象
删除: 类名.objects.filter(id=‘‘).delete() # 删除
修改: obj = 类名.objects.filter(id=‘‘)[0]
或者使用get: get获取一个具体的对象
obj = 类名.objects.get(id=‘‘)
obj.name = ‘新值‘ #修改对象的属性(修改数据行某个字段的值)
obj.save() #把修改同步到数据库
def edit_press(request): if request.method == ‘POST‘: # 1取出用户编辑之后的数据 edit_id = request.POST.get(‘id‘) new_name = request.POST.get(‘name‘) # 2 找出原先的数据 edit_press_obj = Press.objects.filter(id=edit_id)[0] #filter取出的是列表, 取索引是取出对象 # edit_press_obj = Press.objects.get(id=edit_id) # get直接取出对象 print(edit_press_obj) # 3 用新的名字替换原来的名字 edit_press_obj.name = new_name # !!!!!!!!!!!4 将修改同步到数据库 edit_press_obj.save() # 5 跳转到出版社表 return redirect(‘/press_list/‘) # 获取需要编辑的出版社的id edit_id = request.GET.get(‘id‘) # 找到数据库中对应的内容 ret = Press.objects.get(id=edit_id) return render(request,‘edit_press.html‘, {‘press_obj‘:ret})
2 模板语言:
a : 跟变量相关的{{变量名}}
b : 跟逻辑相关{% for i in 变量名%}
{{forloop.counter}} # 记录循环了多少次, 从1开始
{{forloop.counter0}} #记录循环了多少次, 从0开始
{% endfor%}
在html中的应用(具体见60天的Django项目press)
<tbody> {% for i in result %} <tr> <td>{{ forloop.counter }}</td> <td>{{ i.id }}</td> <td>{{ i.name }}</td> <td> <a href="/delete_press/?id={{ i.id }}">删除</a> <a href="/edit_press/?id={{ i.id }}">编辑</a> </td> </tr> {% endfor %} </tbody>
在.py文件中的应用
def press_list(request): ret = Press.objects.all() print(ret) return render(request, ‘press_list.html‘, {‘result‘: ret})
3 __str方法以及格式化输出的两种方法
class Student:
def __str__(self):
# return ‘%s %s‘ %(self.name, self.age) #格式化输出的两种方法
return ‘{}{}‘.format(self.name, self.age)
def __init__(self, name,age):
self.name = name
self.age = age
stu = Student(‘小爱‘,13)
print(stu) #相当于执行了__str方法
ret = stu.name
print(ret)
以上是关于60 Django项目 单表(出版社)的增删改查的主要内容,如果未能解决你的问题,请参考以下文章