django中使用原生的sql查询实例
时间:2021-07-01 10:21:17
帮助过:48人阅读
pymysql
from 项目名.settings
import DATABASES
class Database_operat(object):
def __init__(self, database=DATABASES, database_name=
‘default‘):
database_information =
database[database_name]
try:
self.db = pymysql.connect(host=database_information[
‘HOST‘], user=database_information[
‘USER‘], port=database_information[
‘PORT‘],
password=database_information[
‘PASSWORD‘], db=database_information[
‘NAME‘])
self.cur =
self.db.cursor()
except pymysql.err.OperationalError as e:
print(e)
print(
"连接数据库失败")
return
#查全部数据
def search_all(self, sql):
data=
‘‘
try:
self.cur.execute(sql)
self.db.commit()
data =
self.cur.fetchall()
print(data)
data =[i[0]
for i
in data]
print(data)
# data =list(data)
except pymysql.err.ProgrammingError as e:
print(e)
print(
"查询失败")
except pymysql.err.InternalError as e :
print(e)
print(
"查询失败")
finally:
self.db.close()
if data:
return data
else:
data =
[]
return data
def close(self):
self.db.close()
return
在views文件中可以这样使用:
from .database_operations import *
# 动态加载5个相似的批次号
def search_batch(request):
db = Database_operat()
batch = request.GET.get(‘batch‘)
batch = batch + ‘%‘
batch_like_sql = "SELECT batch FROM batch_comparison WHERE batch LIKE ‘%s‘ LIMIT 0,5;" % batch
batch_list = db.search_all(batch_like_sql)
msg = json.dumps(batch_list)
return HttpResponse(msg)
django中使用原生的sql查询实例
标签:limit format sel like cep batch sql查询 operation where