zoukankan      html  css  js  c++  java
  • Django 易错易忘知识点

    Django框架学习易错和易忘点

    一、get在几处的用法

    1.获取前端数据

    request.POST.get('xxx')   #当存在多个值时,默认取列表最后一个元素;所以当存在多个值时,使用getlist
    

    2.获取数据库数据

    models.User.objects.get(xxx=yyy)   #get()方式返回的是单个对象,如果符合条件的对象有多个就会报错,所以我们一般用的是filter()
    

    二、路由层设置

    无名分组

    路由层:url(r'^index/(d+)/', views.index)   必须用括号,按位置参数传参
    视图层:视图函数必须要用一个参数来接收,参数名可以随便取,也可以用*args
    def index(request,xxx) 或者  def index(request,*args)
    

    有名分组

    路由层:url(r'^index/(?P<year>d+)/', views.index)  注意P要大写,按关键字传参给视图函数
    视图层:视图函数接收的参数名必须要和路由层传的参数名一致,或者用**kwargs接收多个参数
    def index(request,year)  或者   def index(request,**kwargs)
    

    F查询的本质就是从数据库中获取某个字段的值,之前查询等号后面的条件都是我们人为输入的,现在变成了需要从数据库中获取数据放在等号后面

    查询库存量大于卖出量的书籍

    from django.db.models import F
    res = models.Book.objects.filter(kucun__gt=F('maichu')) #kucun和maichu都是Book表的字段
    

    将书籍库存数全部增加1000

    models.Book.objects.update(kucun=F('kucun')+1000)
    

    把所有书名后面加上'新款'

    from django.db.models.functions import Concat
    from django.db.models import Value
    
    ret3 = models.Book.objects.update(title=Concat(F('title'), Value('新款')))
    models.Book.objects.update(title = F('title')+'新款')  # 不能这么写
    

    Q查询 (filter里面条件都是与,Q支持与或非)

    查询书籍名称是三国演义或者价格是444

    from django.db.models import Q
    res = models.Book.objects.filter(title='三国演义',price=444.44)  # filter只支持and关系
    res1 = models.Book.objects.filter(Q(title='三国演义'),Q(price=444))  # 如果用逗号 那么还是and关系
    res2 = models.Book.objects.filter(Q(title='三国演义')|Q(price=444))   #或者关系
    res3 = models.Book.objects.filter(~Q(title='三国演义')|Q(price=444))  #查询除了title是三国演义,或者价格是444的书籍
    
  • 相关阅读:
    windows C++ 获得一个进程的线程数目
    乌龟 SVN 在update后,如何知道 update前的版本号?
    C++ 类中的static对象貌似不能是类对象
    WinForms C#:html编辑器工程源码,含直接写WebBrowser的文件流、IPersistStreamInit接口的声明和一些相关的小方法
    用Remoting 实现一个文件传输组件
    [转载]Extreme Game Programming
    C#:10进制转2进制函数
    bindows 源码格式化工具(测试中的测试)C#源码
    明天又是周末,可以好好休息了!
    将文件加入到图形文件里;
  • 原文地址:https://www.cnblogs.com/chmily/p/11746868.html
Copyright © 2011-2022 走看看