• S20_DAY16--课堂笔记


    Django学习内容

    ----django
        ---MTV
        ---cookie session
        ---form组件
        ---中间件
        ---alax
    
    
    ----博客系统
    
    ----权限组件
    
    ----stark组件
    
    ----crm系统
    
    ----爬虫
    
    ----金融分析

    ----REST framework + Vue

    自学内容

    ----rest-framework
    ----flask

    预备知识

    ----jquery
    ----bootstrap
    ----django
    ----ajax

    有名分组

    Including other URLconfs(路由分发)

    #At any point, your urlpatterns can “include” other URLconf modules. This
    #essentially “roots” a set of URLs below other ones.
    
    #For example, here’s an excerpt of the URLconf for the Django website itself.
    #It includes a number of other URLconfs:
    
    
    from django.conf.urls import include, url
    
    urlpatterns = [
       url(r'^admin/', admin.site.urls),
       url(r'^blog/', include('blog.urls')),
    ]

     

    url反向解析(使用url 模板标签)

    用途:login.html中填写  本URL地址,为了将来不会因为url地址更改,而更改html内容,这里采用别名方式。

    wsgiref模块

    wsgiref  把请求信息封装成request对象
    
    wsgiref  把请求体组装成响应体格式

    视图(views)中函数的参数 request

    Template(模板层)---渲染变量 {{ }}
    深度查询句点符

    forloop.counter
    
    forloop.counter0(从0计数)

    Template(模板层)---渲染变量 {{ }}
    过滤器{{ var|filter:参数}}

    自定义标签和过滤器

    Model(模型层)
    ORM---对象关系映射

    单表记录操作

    model.py

    class Book(models.Model):
        title=models.CharField(max_length=32)
        price=models.DecimalField(max_digits=6,decimal_places=2)
        create_time=models.DateField()
        memo=models.CharField(max_length=32,default="")
    
        # book_obj.publish: 与这本书籍关联的出版社对象
        publish=models.ForeignKey(to="Publish",default=1)
        # book_obj.author.all():  与这本书关联的作者对象集合,Queryset []
        author=models.ManyToManyField("Author")
    
        def __str__(self):
            return self.title

    查询相关API

    <1> all():                 查询所有结果
    QuerySet
    book_l=models.Book.objects.all() <models-->models.py | objects-->管理器>

    <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
    QuerySet <符合条件的结果集> book_l=models.Book.objects.filter(price=134)

    <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个, 如果符合筛选条件的对象超过一个或者没有都会抛出错误。
    Object
    models.Book.objects.get(title="数学书")
    <5> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 QuerySet
    book_l=models.Book.objects.exclude(price=134)

    <4> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列 model的实例化对象,而是一个可迭代的字典序列
    QuerySet
    models.Book.objects.all().values("title","price")
    <9> values_list(*field): 它与values()非常相似,它返回的是一个元组序列
    QuerySet
    models.Book.objects.all().values_list("title","price")
    <6> order_by(*field): 对查询结果排序
    QuerySet
    models.Book.objects.all().order_by("price") <排序从小到大>
    models.Book.objects.all().order_by("-price")  <排序从大到小>

    <7> reverse(): 对查询结果反向排序
    QuerySet
    models.Book.objects.all().order_by("price").reverse() <排序从大到小>
    <8> distinct(): 从返回结果中剔除重复纪录
    QuerySet
    <10> count(): 返回数据库中匹配查询(QuerySet)的对象数量。
    返回的是值
    book_list.count()
    <11> first(): 返回第一条记录 Object
    book_obj=models.Book.objects.all().first()

    <12> last(): 返回最后一条记录
    Object
    book_obj=models.Book.objects.filter(title="语文书").last()


    <13> exists(): 如果QuerySet包含数据,就返回True,否则返回False
    ANS=models.Book.objects.all().exists()

    删除记录&更新记录

    多对多关系-创建第三张表

    多对多关系-自动创建第三张表,不会生成author字段

    出版社信息-select表--values=“{{publish.pk}}”

    添加一条新纪录--绑定书籍与作者的多对多关系

    从POST中取  多关系  中的值

    def addbook(request):
    
        if request.method=="POST":
    
            title=request.POST.get("title")
            price=request.POST.get("price")
            date=request.POST.get("date")
            publish_id=request.POST.get("publish_id")
    # 使用getlist从POST中取多值的列表 author_id_list
    =request.POST.getlist("author_id_list") print("author_id_list",author_id_list) # 绑定书籍与出版社的一对多的关系 obj=Book.objects.create(title=title,price=price,create_time=date,publish_id=publish_id) # 绑定书籍与作者的多对多的关系 # 不可行方案 # for author_id in author_id_list: # A.objects.create(book_id=obj.pk,author_id=author_id) # 可行方案 # obj.author.add(1,2,3) # obj.author.remove(1,2) # obj.author.clear() obj.author.add(*author_id_list) return redirect("/books/")

    错误的--从POST中取  多关系  中的值

    在书籍页 展示表格中的author字段

    回顾一对多&多对多关系

  • 相关阅读:
    重要网址
    线程同步与异步
    常量指针 和 指针常量
    权限设置
    COM组件技术
    抽象类与接口及其派生类的关系
    C++中 #pragma 的使用方法
    [原创].基于SyntaxHighlighter的Verilog HDL高亮组件
    [转载].图解SDRAM工作流程:仓库物语(高手进阶,终极内存技术指南——完整/进阶版)
    [笔记].原来Notepad++也有列模式
  • 原文地址:https://www.cnblogs.com/shangdelu/p/8847788.html
Copyright © 2020-2023  润新知