执行django模型查询?

时间:2017-12-17 14:50:07

标签: python django django-models

在django模型查询中,我想知道它的顺序执行。考虑一个查询from bs4 import BeautifulSoup import requests URL_BASE = "https://www.tripadvisor.com/Hotel_Review-g562819-d289642-Reviews-Hotel_Caserio-Playa_del_Ingles_Maspalomas_Gran_Canaria_Canary_Islands.html" MAX_PAGES = 30 counter = 0 for i in range(1, MAX_PAGES): if i > 1: url = "%spage/%d/" % (URL_BASE, i) else: url = URL_BASE req = requests.get(url) statusCode = req.status_code if statusCode == 200: html = BeautifulSoup(req.text, "html.parser") resultsoup = html.find_all('P', {'class': 'partial_entry'}) else: break for review in resultsoup: review_list = review.get_text() print(review_list) 。 在定义Blog.objects.get(name='palm')的位置,与models.py中的类Blog相同吗? 什么是对象我在django的源文件中找不到与此相关的任何内容。如果blog是一个类,那么Blog的类型是什么?

我想要一个开发方面的概念。任何人都可以解释一下django如何使这些成为可能吗?

1 个答案:

答案 0 :(得分:2)

每个非抽象 Django模型类都附加了一个属性objects(除非您当然明确删除它)。

objectManager。它是一个对象,有很多方法来构造查询,然后发送到数据库以获取/存储数据。

因此,您首先要访问objects课程的Blog经理,然后再打电话给.get(name='palm')。这意味着Django会将其转换为查询。这取决于您使用的数据库系统。例如,如果它是MySQL,它将看起来像:

SELECT name, some, other columns
FROM app_blog
WHERE name = 'palm'

数据库将以零,一行或多行进行响应,如果找不到或多行,Django会引发DoesNotExistsMultipleObjectsReturned错误。否则,它会将数据加载到Blog对象中(通过将列反序列化为Python对象)。