django+sql+原生sql结果美化

django里原生sql查询书写

#导入原生sql模块
from django.db import connection

class PathDetail_To_CourseAPI(View):

    # 展示
    def get(self, request):
 		#获取路径阶段id
        pd_id = request.GET.get('pd_id')

        #建立游标对象
        cursor = connection.cursor()

        #执行sql语句
        cursor.execute('select a.pd_id,a.course_id,b.title,b.img from pathdetail_to_course a left join course b on a.course_id = b.id  where a.pd_id in  (%s)' %pd_id)

        #获取结果
        result = dictfetchall(cursor)
        return Response({
            'code': 201,
            'data': result
        })

对原生sql的结果集美化(对上面view返回的响应做出的美化)

#对原生sql结果集美化方法
def dictfetchall(cursor):

    #获取游标描述
    desc = cursor.description

    return[
        dict(zip([col[0] for col in desc], row))

        for row in cursor.fetchall()
    ]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要安装 Django、Layui 和 Pandas。然后,你可以按照以下步骤实现导出数据: 1. 在 Django 中创建一个视图函数,用于处理导出数据的请求。这个函数需要从数据库中获取数据,并将其转换为 Pandas DataFrame 对象。 ```python import pandas as pd from django.http import HttpResponse def export_data(request): # 使用原生 SQL 查询获取数据 cursor = connection.cursor() cursor.execute("SELECT id, name, age FROM myapp_person") data = cursor.fetchall() # 将数据转换为 Pandas DataFrame 对象 df = pd.DataFrame(data, columns=['id', 'name', 'age']) # 将 DataFrame 对象转换为 CSV 格式 response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="data.csv"' df.to_csv(path_or_buf=response, index=False) return response ``` 2. 在 Django 中创建一个 URL 路由,将导出数据请求映射到导出数据视图函数。 ```python from django.urls import path from . import views urlpatterns = [ path('export_data/', views.export_data, name='export_data'), ] ``` 3. 在 Layui 中创建一个按钮,用于触发导出数据请求。当用户点击这个按钮时,Layui 将发送一个 AJAX 请求到导出数据的 URL。 ```html <button id="export-btn" class="layui-btn">导出数据</button> <script> layui.use('jquery', function() { var $ = layui.jquery; $('#export-btn').click(function() { window.location.href = '/export_data/'; }); }); </script> ``` 当用户点击导出数据按钮时,浏览器将下载一个名为 data.csv 的 CSV 文件,其中包含从数据库中查询出来的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值