django中使用原生的sql查询实例

Posted xsan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django中使用原生的sql查询实例相关的知识,希望对你有一定的参考价值。

在app文件夹下创建database_operations.py文件,写如下内容:
import 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查询实例的主要内容,如果未能解决你的问题,请参考以下文章

django中使用原生sql

在Django中使用原生Sql

django学习第九天

Django查漏补缺

Django执行原生SQL的三种方法 򚛞

Django框架08 /聚合查询分组F查询和Q查询执行原生sql设置 sql_mode