我在下面使用这个views.py获取应用程序
from django.db import connection
def test(request):
cursor = connection.cursor()
sql = """
SELECT x , n
from table1 limit 10
"""
cursor.execute(sql)
rows = cursor.fetchall()
# df1 = pd.read_sql_query(sql,cursor) <==> not working )
# df1.columns = cursor.keys() <==> not working )
return render(request, 'app/test.html',{ "row" : rows,})
我能够打印行并在下面得到类似这样的列表测试.html
row((x1,yvalue1),(x2,yvalue2) , .... ))
但我想做的是获取所有数据及其列名,我提取并放入 dataframe 中,希望使用如下所示的内容:
http://pandas.pydata.org/pandas-docs/stable/ generated/pandas.read_sql_query.html#pandas.read_sql_query http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql_query.html#pandas.read_sql_query
我认为 aus_lacy 在他的解决方案中有点偏离 - 首先你必须转换QuerySet
包含支持 SQL 的字符串QuerySet
from django.db import connection
query = str(ModelToRetrive.objects.all().query)
df = pandas.read_sql_query(query, connection)
还有一个内存效率较低但仍然有效的解决方案:
df = DataFrame(list(ModelToRetrive.objects.values('id','some_attribute_1','some_attribute_2')))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)