25 Jul 18 批量导入 保持搜索 Q补充 GET/POST

25 Jul 18

一、批量导入

book_list=[]

for i in range(1,101):

book=Book(title="book_%s"%i,price=i*i)

book_list.append(book)

Book.objects.bulk_create(book_list)

二、保持搜索的实现(分页,filter)

1. request.GET得到的字典不能修改,但可以对其深拷贝的字典对象进行修改

import copy

self.params = copy.deepcopy(self.request.GET)  # # <QueryDict: {‘a‘: [‘1‘], ‘b‘: [‘2‘], ‘xxx‘: [123]}>

self.params["page"] = i

2. self.request.GET.urlencode(); self.params.urlencode() # "a=1&b=2&xxx=123"

三、Q用法补充

from django.db.models import Q

from app01.models import Book

Book.objects.filter(title="西")  # <QuerySet []>

Book.objects.filter(title="西游记")  # <QuerySet [<Book: 西游记>]>

Book.objects.filter(Q(title="西游记")|Q(price=45))  # <QuerySet [<Book: 西游记>, <Book: 水浒传>]>

但经常,待筛选的对象会以字符串的形式传入,以上方法即失效;以下方法,可把字符串当作对象,从而进行进一步筛选

from django.db.models import Q

q=Q()

q.children.append(("title","西游记"))

q.children.append(("title"+"__icontains","西"))  # 常见用法

q.children.append(("",""))

q.connector="or"  # 默认是‘and‘,如果需要或关系,需要将connector设置成"or"

Book.objects.filter(q)

# 实例

>>> q=Q()

>>> q.children.append(("title","西游记"))

>>> Book.objects.filter(q)

<QuerySet [<Book: 西游记>]>

>>> q.children.append(("price",234))

>>> Book.objects.filter(q)

<QuerySet []>

>>> q.connector="or"

>>> Book.objects.filter(q)

<QuerySet [<Book: 西游记>, <Book: 张曌和吴晨钰的故事>]>

四、若需要修改数据库用POST请求,若不需要修改数据库用GET请求

原文地址:https://www.cnblogs.com/zhangyaqian/p/py20180725.html

时间: 2024-11-05 14:37:25

25 Jul 18 批量导入 保持搜索 Q补充 GET/POST的相关文章

mysql 如何提高批量导入的速度

mysql 如何提高批量导入的速度 最近一个项目测试,有几个mysql数据库的表数据记录达到了几十万条,在搭建测试环境 导入 测试数据时,十分慢.在网上搜索了一下,有下面一些方法可以加快mysql数据库导入数据的速度:0. 最快的当然是直接 copy 数据库表的数据文件(版本和平台最好要相同或相似):1. 设置 innodb_flush_log_at_trx_commit = 0 ,相对于 innodb_flush_log_at_trx_commit = 1 可以十分明显的提升导入速度:2. 使

批量导入Excle数据

View视图模态框 1 <!-- 客户导入弹窗 --> 2 <div class="modal fade batch-import new-built" id="customerImpo" tabindex="-1" data-backdrop="static" data-keyboard="false"> 3 <div class="modal-dialog mod

java把excel数据批量导入到数据库

java把excel数据批量导入到数据库中,java导入excel数据代码如下 1.    public List<Choice> GetFromXls(String xlsname){ 2. 3.        List<Choice> choices = new ArrayList<Choice>(); 4.        Choice choice=null; 5.        try { 6.            java.io.File file=new

HBase结合MapReduce批量导入(HDFS中的数据导入到HBase)

HBase结合MapReduce批量导入 1 package hbase; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 6 import org.apache.hadoop.conf.Configuration; 7 import org.apache.hadoop.hbase.client.Put; 8 import org.apache.hadoop.hbase.mapreduce.TableOutput

Elasticsearch5.0 Java Api(六) -- 批量导入索引

将计算机本地的.json格式文件中的数据,批量导入到索引库中 1 package com.juyun.test; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileNotFoundException; 6 import java.io.FileReader; 7 import java.io.IOException; 8 import java.net.InetAddress; 9 imp

C#批量导入Excel或WPS实现方法

批量导入导出Excel,WPS,TXT,可按照系统是否安装OFFICE.WPS情况选择,导出是自动选择. 上效果图 1 /// <summary> 2 /// //获得当前你选择的Excel Sheet的所有名字 3 /// </summary> 4 /// <param name="filePath">文件路径</param> 5 /// <param name="ExcelType">1 Microso

用java实现excel数据批量导入数据库

不管是做软件还是做网站,相信很多人在做的时候都要用到数据库,而数据库的数据从何而来呢,可以使手动添加的,但是大多数情况下我们使用的是已有的数据,我们想借助开发的工具管理目前已有的数据,如果是小量的数据,手动录入也无妨,但是对于大量数据呢,手动录入显然已经不显示,而且,更多的时候,我们呢想在软件上增加一个数据的批量导入,这样不管是谁在用这款软件,都可以方便的管理已有数据,那么我们最常用的数据管理器是什么呢,毫无疑问Excel,但是我们做软件是几乎没有人会使用Excel作为DB,所以我们遇到的问题就

max 批量导入obj

建模的同事网上搜的,个别语法错误,修正了下挺好用的(网上随便一搜就有,借用一下做个记录) 1 Fn getnames Title FilterName =( 2 3 dialog = DotNetObject"System.Windows.Forms.OpenFileDialog" 4 5 dialog.title = Title 6 7 dialog.filter = FilterName 8 9 dialog.Multiselect = true 10 11 OpenFileRes

批量导入/更新 数据的几种方法

在工作中经常遇到要导入数据的场景. 1 导入全新的数据 2 导入的数据中库中可能已经存在,已经存在的数据不能覆盖,不能变更 3 导入的数据中库中可能已经存在,已经存在的数据主键等不能变化,同时需要更新这些数据的一些字段(比如:积分字段) 第一种最简单,最坑爹的是第三种了. 新手碰到这种问题往往一筹莫展,能想到的最直接的办法就是 一条条获取 ,然后判断,然后 update.这种方式的效率在少量数据的时候还没太大问题,当达到上千上万条时候问题就会出现了. 这种处理方式的资源开销和效率简直“惨绝人寰”