首页>>后端>>Python->django查询如何条件判断(django数据查询)

django查询如何条件判断(django数据查询)

时间:2023-12-14 本站 点击:0

导读:很多朋友问到关于django查询如何条件判断的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

Django model 遇到查询条件组合比较多的情况下怎么写

里面有执行原始查询的方法,不过我记得官网文档版本API和这个不一致,做开发还是要过E文文档关的。

朋友,您好,我想问Django分页后查询条件丢失的问题

很简单的GET传值,晚上再回答吧,现在有点事...

给你个示例代码吧

# views.py

def order_forms_by_days(request):

    """

     订单日统计报表,读取 本地 count_days 表

    :param request:

    :return:

    """

    cursor = connections['mfashion_db'].cursor()

    sql = 'SELECT * FROM count_days ORDER BY date DESC'

    cursor.execute(sql)

    results = dictfetchall(cursor)

    limit = 20

    paginator = Paginator(results, limit)

    page = request.GET.get('page')

    try:

        orders = paginator.page(page)

    except(PageNotAnInteger, EmptyPage):

        orders = paginator.page(1)

    params = {

        'request': request,

        'orders': orders,

        'page': page

    }

    return render_to_response('boss/census_days.html', params, context_instance=RequestContext(request))

{% with orders as datas %}

        div class="ui page grid floated" style="margin-top: 30px;"

            div class="column"

                h2订单日统计报表/h2

                订单总数量: h3{{ all_counts }}/h3总金额(元): h3{{ all_price }}/h3

                table class="ui compact small striped table"

                    thead

                    tr

                        th订单编号/th

                        th下单时间/th

                        th支付时间/th

                        th买家姓名/th

                        th卖家名称/th

                        th订单状态/th

                        th商品名称/th

                        th订单金额/th

                    /tr

                    /thead

                    tbody

                    {% for order in orders %}

                        tr

                            td{{ order.trade_no }}/td

                            td{{ order.create_time }}/td

                            td{{ order.paid }}/td

                            td{{ order.shipped }}/td

                            td{{ order.sign }}/td

                            td{{ order.completed }}/td

                            td{{ order.cancelorder }}/td

                            td{{ order.deliveryfailure }}/td

                            td{{ order.refund }}/td

                            td{{ order.refuseorders }}/td

                            td{{ order.closeorders }}/td

                            td{{ order.total }}/td

                        /tr

                    {% endfor %}

                    /tbody

                /table

                div class="ui two column centered grid"

                    div class="column centered row"

                        div class="ui pagination menu"

                            {% if datas.has_previous %}

                                a class="icon item"

                                   href="?{% url_replace request 'page' datas.previous_page_number %}"

                                    i class="left arrow icon"/i

                                /a

                                {% else %}a class="disabled icon item"i class="left arrow icon"/i

                                /a

                            {% endif %}

                            div class="item"

                                {{ datas.number }}/{{ datas.paginator.num_pages }}

                            /div

                            {% if datas.has_next %}

                                a class="icon item"

                                   href="?{% url_replace request 'page' datas.next_page_number %}"

                                    i class="right arrow icon"/i

                                /a

                                {% else %}a class="disabled icon item"i class="right arrow icon"/i

                                /a

                            {% endif %}

                        /div

                    /div

                /div

            /div

        /div

    {% endwith %}

Django filter中contains 用法

用PYTHON ,DJANGO 做站,在通常的情况下,需要用到 orM 的查询方法,比如object.filter(tag__contains='keywords')....

在这种情况下,如果你跟踪 sql 语句,你会发现,SQL 语句会生成 select .... like bianry '%keywords%', 如果是这样的语句,在某些情况是下是会出问题的,也就是说查询出来的数据可能会比你预计的少。

如果你用 raw sql 查总数 select count(*) from table where like '%keywords%' 得到数量可能比你用ORM 采用上面的方式得到的数据多,问题就在于生成的条件问题。

后来查询了 django 说明,如果把ORM 语句变成:object.filter(tag__icontains='keywords').... 就好了。

注意contains ,icontains 的区别. 后来从django官网查到了说明:

结语:以上就是首席CTO笔记为大家整理的关于django查询如何条件判断的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django查询如何条件判断的相关内容别忘了在本站进行查找喔。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/33597.html