python第三方库系列之十一--django.db的connection库

平时用django去向数据库中读写数据都是用的Model,直接molel.objects.filter(Q())或者model.objects.get(Q())等读取数据。然而这样的Q()查询SQL语句就必须符合django ORM的规范,今天想总结的是用connection库和原生的SQL语句读写数据库。

from django.db import connection
SQL_str = "select * from book"
cursor = connection.cursor()
cursor.execute(SQL_str)
domain_and_record_db_datas = cursor.fetchall()

今天碰到一个特别奇葩的问题,修复了一下午才得以解决,就是SQL语句中的LIKE方法。看看一下是怎么演变的:

1. 平时的LIKE方法是:

SQL_str = "select * from book where name LIKE 'xxx'"

这条语句相当于:

SQL_str = "select * from book where name = 'xxx'"

2. 为了模糊查询,应该这样:

SQL_str = "select * from book where name LIKE '%xxx%'"

3. 但在python中,“%”是一个特殊字符,需要两个“%%”才表示一个“%”,所以写成这样:

SQL_str = "select * from book where name LIKE '%%xxx%%'"
print SQL_str
# select * from book where name LIKE '%xxx%'

如果写成这样,打印出来的SQL语句是可以在SQL命令行下运行的,但在我的django中会报出以下错误:

'Cursor' object has no attribute '_last_executed'

我在网上找了很久,都说只要加上“%%”就行,我的就是报错。于是我大胆的加上了“%%%%”,告诉编译器我这个是百分号,居然OK了!

4. 总结,在django中如果加上2个“%”还报错,就加上4个“%”,所以写成这样:

from django.db import connection
SQL_str = "select * from book where name LIKE '%%%%xxx%%%%'"
cursor = connection.cursor()
cursor.execute(SQL_str)
domain_and_record_db_datas = cursor.fetchall()

成功了!

时间: 2024-08-11 08:09:17

python第三方库系列之十一--django.db的connection库的相关文章

Python学习笔记整理总结【Django】:Model操作(二)

1.操作汇总 # 增 # # models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargs # obj = models.Tb1(c1='xx', c2='oo') # obj.save() # 查 # # models.Tb1.objects.get(id=123) # 获取单条数据,不存在则报错(不建议) # models.Tb1.objects.all() # 获取全部 # models.Tb1.objects

python第三方库系列之十七--multiprocessing库

说到并发,我们想到多线程和多进程. 那到底使用多进程还是多线程呢?这得看情况.我们的程序一般分为: 1)耗网络的(有很大一部分时间是在网络交互): 2)耗CPU的(得充分利用多核) 在第一种情况,时间大部分被网络延时占用,所以使用多线程和多进程都差不多. 在第二种情况,时间的长短由CPU是否被充分利用决定,看<python第三方库系列之十二--多线程threading库>可知,多线程会出现锁机制,所以多进程更胜一筹,充分利用了CPU,节省了时间. 以下是一个多进程例子: #coding=utf

python第三方库系列之十四--集群化部署定时任务apscheduler库

如果将定时任务部署在一台服务器上,那么这个定时任务就是整个系统的单点,这台服务器出现故障的话会影响服务.对于可以冗余的任务(重复运行不影响服务),可以部署在多台服务器上,让他们同时执行,这样就可以很简单的避免单点.但是如果任务不允许冗余,最多只能有一台服务器执行任务,那么前面的方法显然行不通.本篇文章就向大家介绍如何避免这种互斥任务的单点问题,最后再介绍一下基于APScheduler的分布式定时任务框架,这个框架是通过多个项目的实践总结而成的. 对于运行在同一台服务器上的两个进程,可以通过加锁实

Python第三方常用工具、库、框架等

Python ImagingLibrary(PIL):它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换.打印和显示.还能进行一些图形效果的处理,如图形的放大.缩小和旋转等.是用户进行图象处理的强有力工具. http://www.pythonware.com/products/pil/ matplotlib:一个Python的2D绘图库. http://matplotlib.org/ Pmw(Pythonmegawidgets):它是超级GUI组件集----一个利

常用Python第三方库简介

如果说强大的标准库奠定了Python发展的基石,丰富的第三方库则是python不断发展的保证,随着python的发展一些稳定的第三库被加入到了标准库里面,这里有6000多个第三方库的介绍 下表中加粗并且标红的都是我平时使用较多的一些第三方库. 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 常用Python第三方库 分类 库名称 库用途 Web框架 Django 开源web开发框架,它鼓励快速开发,并遵循MVC设计,我以前用过很多次,比较好用,开

python第三方库自动安装脚本

#python第三方库自动安装脚本,需要在cmd中运行此脚本#BatchInstall.pyimport oslibs = {"numpy","matplotlib","pillow","sklearn","requests",\ "jieba","beautifulsoup4","wheel","networkx","

Python第三方库之openpyxl(11)

Python第三方库之openpyxl(11) Stock Charts(股票图) 在工作表上按特定顺序排列的列或行中的数据可以在股票图表中绘制.正如其名称所暗示的,股票图表通常被用来说明股价的波动.然而,这张图表也可以用于科学数据.例如,你可以用一个股票图表来表示每日或每年的温度波动.您必须按照正确的顺序组织您的数据,以创建股票图表. 在工作表中组织股票图表数据是非常重要的.例如,为了创建一个简单的高低收盘价的股票图表,您应该按照这个顺序将您的数据以高.低和接近的形式排列为列标题. 尽管股票图

python第三方库安装

13万个第三方库 https://pypi.org PyPi:Python Package Index PSE维护的展示全球Python计算生态的主站 在pypi.org搜索blockchain 挑选适合开发目标的第三方库作为基础 完成自己需要的功能 安装Python第三方库: 使用pip命令 集成安装方法 文件安装方法 pip安装方法: D:\>pip download<第三方库> 下载但不安装指定的第三方库 D:\ >pip show <第三方库名> 列出某个指定第

python第三方库学习之xlrd读取Excel文件

因为经常会涉及到从Excel表中导数据,所以就学习了python的xlrd来读取excel中的数据. 1.xlrd的安装 xlrd是python的第三方库,所以是需要自己安装的,可以在python的官网http://pypi.python.org/pypi/xlrd下载该模块来安装,也可以通过其他手段,比如easy_install或者pip啥的,我已经安装好pip所以就用最懒的方式来安装了pip install xlrd来安装. 2.分析excel文件的层级对象 要读取excel的数据,就要了解