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项目 单表(出版社)的增删改查的主要内容,如果未能解决你的问题,请参考以下文章

Django之单表的增删改查

图书管理系统-单表的增删改查

django基础 5 作者的增删改查

Django - 模型层 - 下

单表的增删改查实例(图书管理 系统)

Mybatis(一)实现单表的增删改查