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)

原文地址:https://www.cnblogs.com/xshan/p/11792083.html

时间: 2024-10-11 04:05:43

django中使用原生的sql查询实例的相关文章

django中使用原生sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql ( 这种方式完全不依赖model,前两种还是要依赖于model ) 实例: 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东

在Django中使用原生Sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql(这种方式完全不依赖model,前两种还是要依赖于model) 实例: 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东人员出

01-04-01【Nhibernate (版本3.3.1.4000) 出入江湖】原生的SQL查询

Nhibernate 支持原生的SQL查询 : 1 /// <summary> 2 /// 使用原生的SQL查询 3 /// </summary> 4 /// <param name="datetime"></param> 5 /// <returns></returns> 6 public IList<Customer> GetCustomersByDateTimeUsingSql(string da

处于同一域中的两台SQL Server 实例无法连接

处于同一个域中的两台Sql server 实例无法连接,报的错误信息如下: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is

处于同一个域中的两台Sql server 实例无法连接

处于同一个域中的两台Sql server 实例无法连接,报的错误信息如下: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is

在django中,执行原始sql语句

extra()方法 结果集修改器,一种提供额外查询参数的机制 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东人员出版社',price__gt=50) 2:Book.objects.extra(select={'count':'select count(*) from hello_Book'}) ra

Django中获取参数(路径,查询,请求头,请求体)

一.通常HTTP协议向服务器传参有几种途径 : 提取URL的特定部分,如/weather/shanghai/2018,可以在服务器端的路由中用正则表达式截取: 查询字符串(query string),形如key1=value1&key2=value2: 请求体(body)中发送的数据,比如表单数据.json.xml: 在http报文的头(header)中. 1.URL中参数的获取 在定义路由URL时,可以使用正则表达式提取参数的方法从URL中获取请求参数,Django会将提取的参数直接传递到视图

django中使用原生SQL语句

views中代码: # 有多个数据库时 from django.db import connections # 傳入游标,得到字典結果集 def dictfetchall(cursor): "将游标返回的结果保存到一个字典对象中" desc = cursor.description return [ dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall() ] def seldata(request):

QuerySet中添加Extra进行SQL查询

select参数接受一个映射到SQL的字符串标识字典,让你可以根据SQL select子句里的选择进行对模型实例添加属性,或者查询. from blog.models import BlogPost>>> BlogPost.objects.all().extra(select='title':"title=计算机网络"})