我是django新手,我有一个基本问题和一个技术问题。
1.我正在使用Postgres DB。我使用psycopg 2连接/游标来获取数据,在建立连接时有一些延迟。我读到,ORM负责低级别的活动,如建立连接等。如果我使用django,ORM将负责连接挑战?1.1.我可以期待与raw()相同的(低级别活动)吗?
- objects.raw(sql)返回查询而不是表中的记录。
我对学生模型的定义如下
class Student(models.Model):
firstname = models.CharField(max_length=100)
surname = models.CharField(max_length=100)
def __str__(self):
return self.firstname
创建视图时,
默认学生列表(请求):
#posts = Student.objects.all() --> 1. working as expected (fetching all records firstname)
cursor = connection.cursor()
sql = "select * from api_student"
cursor.execute(sql)
posts = cursor.fetchone() --> 2. returning entire record
#posts = Student.objects.raw(sql) --> 3. RETURNING SQL QUERY NOT RECORD FROM TABLE ???
print(posts)
return render(request, 'output.html', {'posts':posts})
输出:
1.〈查询集[〈学生:首页〉〉〉
1.〈原始查询集:从API_student〉--〉中选择*这是一项挑战,我是否错过了任何
1.(“阿尼尔”,“库马尔”)
1条答案
按热度按时间2exbekwf1#
**raw()**方法接受一个原始sql查询,执行它,并返回一个RawQuerySet示例。你可以像普通QuerySet一样迭代RawQuerySet并获取对象。