zoukankan      html  css  js  c++  java
  • Django笔记06

    chocie

    choices = ((1,""),(2,""),(3,"保密"))
    gender = models.IntegerField(choices=choices)
    user_obj.get_gender_display()
    # 获取具有choice属性的字段对应的解释,固定用法
    # get_字段_display()

    MTV

      Django是MTV模式的框架

      M:models

      T:templates

      V:views

    MVC

      M:models

      V:views

      C:controller(url + views)

    本质上MTV就是MVC

    ManyToManyField

    多对多关系三种创建方式
    第一种ManyToManyField()自动创建第三张表
    第二种纯手动
      class Book(models.Model):
        name = models.CharField(max_length=32)
      class Author(models.Model):
        name = models.CharField(max_length=32)
      class Book_to_Author(models.Model):
        book = models.ForeignKey(to="Book")
        author = models.ForeignKey(to="Author")
    第三种与自动创建相同,可以自己增加额外的字段
      class Book(models.Model):
        name = models.CharField(max_length=32)
        authors = models.ManyToManyField(to="Author",through="Book_to_Author",through_fields=("book","author"))
      class Author(models.Model):
        name = models.CharField(max_length=32)
      class Book_to_Author(models.Model):
        booke = models.ForeignKey(to="Book")
        author = models.ForeignKey(to="Author")

    Ajax

      前端朝后端发送请求的方式

        a标签href      GET请求

        浏览器输入ulr    GET请求

        form表单      GET/POST请求

        Ajax        GET/POST请求

      前端朝后端发送数据的编码格式

        contentType参数,用来标识前端反射数据的编码格式

          Urlencoded:是form表单和ajax提交数据默认的编码格式(request.POST获取)

          fromdata:文件提交编码(request.FILES获取)

          appliction/json:json格式(request.body)

      ajax特点:

        1 异步提交  2 局部刷新

      ajax与form表单的不同点

        1 from表单提交的数据格式只能是urlencoded和formdata,不支持json格式

        2 from表单提交数据,页面刷新

        3 ajax局部刷新,异步提交,并且支持发送json格式数据

      ajax提交数据必备的参数

        url 提交到哪里

        type 提交方式

        data 提交的数据

        提交后端处理之后的结果 (异步回调)success:function(data){}

      ajax提交json格式数据

        contentType:"application/json"

        使用JSON.stringify包裹数据

        编码格式与数据类型必须一致

      ajax提交文件

        1 不写使用内置对象:FormData

        2 获取input框文件对象:$("")[0].files[0]
        3 指定两个参数为false:

          processData:false  让后端不处理数据

          contentType:false  让后端使用formdata内部数据格式

        4 后端用request.FILES获取文件对象

    批量插入数据

    li = []
    for i in range(1000):
      li.append(models.Book(name="第%s本书"%i))
    models.Book.objects.bulk_create(li)

    分页器 

    固定用法,获取数据当前想访问的页面
    page = request.GET.get('page',1)
    实例化分页器对象
    page_obj = Pagination(current_page=page,all_count=book_queryset.count())
    对总数据对象进行切片
    page_querset = book_queryset[page_obj.start:page_obj.end]
    前端使用
    {{ page_obj.page_html|safe }}
  • 相关阅读:
    绑定方法与与绑定方法
    组合 多态 封装
    继承
    面向对象
    函数进阶
    文件操作
    字符编码
    python基本数据类型及操作
    IDEA 错误: 找不到符号
    Spring+MVC Controller层接收App端请求的中文参数乱码问题。
  • 原文地址:https://www.cnblogs.com/LinChengcheng/p/10738424.html
Copyright © 2011-2022 走看看