zoukankan      html  css  js  c++  java
  • DjangoORM属性操作和models创建类语法

    Models语法:

    class  Publis(models.Model):
        # 设置主键
        id=models.AutoField(primary_key=True,auto_created=True)
        # 设置name字段,类型CharField 长度 max_length  唯一 unique
        name=models.CharField(max_length=32,unique=True)
    
        def __str__(self):
            return  self.name
    

      一对多:

    # 书籍
    class Book(models.Model):
        id=models.AutoField(primary_key=True)
        title=models.CharField(max_length=32,unique=True)
        pub=models.ForeignKey(to=Publis,on_delete=models.CASCADE)
    
        def __repr__(self):
            return self.title
    

      多对多

    #作者
    class Author(models.Model):
        name=models.CharField(max_length=22,unique=True)
        books=models.ManyToManyField('Book')
    
        def __repr__(self):
            return  self.name
    

      ORM属性操作

      获取页面输入的内容:

      

    request.POST.get('id')
    request.GET.get('id')
    request.POST.getlist(列表)
    models.Publis.objects.filter()
    models.Publis.objects.all()
    //添加内容create
    models.Publis.objects.create
    //排序
    order_by
    //页面跳转
    return  render(request,'页面',{'msg':msg})
     return render(request,'addpub.html',{'err_msg':err_msg})
    
     return redirect('/pub/')
    //显示报错信息
     return Httpresponse
    
    //删除
    delete
     del_id=request.GET.get('id')
     models.Book.objects.get(id=del_id).delete()
    
    //修改
    ef upd_auto(request):
        auto_id=request.GET.get('id')
        auto_list=models.Author.objects.get(id=auto_id)
        if request.method=='POST':
            new_name=request.POST.get('new_name')
            # 选择多个数据,所有用getlist获取
            book_id=request.POST.getlist('book_id')
            auto_list.name=new_name
            # 用set保存到数据库,
            auto_list.books.set(book_id)
            auto_list.save()
            return  redirect('/auto/')
        book_all=models.Book.objects.all()
        return render(request,'updauto.html',{'auto_list':auto_list,'book_all':book_all})
    

      html属性方法操作

      

    //循环用法 for
    <select name="book_ids" id="" multiple>
                {% for book in book_all %}
                         <option value="{{ book.id }}">{{ book.title }}</option>
                 {% endfor %}
    </select>
    
    //forloop.counter
      <td>{{ forloop.counter }}</td>
    
    //for if  
     {% for book in book_all %}
            {% if book in auto_list.books.all %}
                   <option value="{{ book.id }}" selected>{{ book.title }}</option>
             {% else %}
                   <option value="{{ book.id }}">{{ book.title }}</option>
            {% endif %}
    {% endfor %}
    
    //删除修改通过id
    
        <a href="/delauto/?id={{ auto.id }}">
        <button>删除</button>
        </a>
         <a href="/updauto/?id={{ auto.id }}">
          <button>修改</button>
         </a>
    

      

      

  • 相关阅读:
    php责任链模式
    php工厂模式
    php观察者模式
    php单例模式
    php的抽象类
    Mysqli的常用函数
    PDO的基本操作
    算法--各种算法
    file_get_post实现post请求
    redis的5种数据结构的使用场景介绍
  • 原文地址:https://www.cnblogs.com/duanhaoxin/p/9622389.html
Copyright © 2011-2022 走看看