zoukankan      html  css  js  c++  java
  • 60 Django项目 单表(出版社)的增删改查 __str__方法及格式化输出 的两个方法

    要内容:

    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)
    

      

     

  • 相关阅读:
    读书笔记之理想设计的特征
    一些javascript 变量声明的 疑惑
    LINQ 使用方法
    Google MySQL tool releases
    读书笔记之设计的层次
    EF之数据库连接问题The specified named connection is either not found in the configuration, not intended to be used with the Ent
    转载 什么是闭包
    javascript面向对象起步
    Tips
    数据结构在游戏中的应用
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9715368.html
Copyright © 2011-2022 走看看