zoukankan      html  css  js  c++  java
  • 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字段

    回顾一对多&多对多关系

  • 相关阅读:
    delphi7在windows server 2003企业版上不能打开项目的选项(Options)窗口的解决方法
    简单的两个字“谢谢”,会让我坚持我的写作,我也要谢谢你们
    F41GUT 安装Windows server 2003系统后无法安装显卡驱动的解决办法
    远程桌面无法登录windows server 2003服务器
    F41GUT 安装Windows server 2003系统后无法安装显卡驱动的解决办法
    MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
    delphi7在windows server 2003企业版上不能打开项目的选项(Options)窗口的解决方法
    远程桌面无法登录windows server 2003服务器
    MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
    关于ajax 和josn
  • 原文地址:https://www.cnblogs.com/shangdelu/p/8847788.html
Copyright © 2011-2022 走看看