我有两个基本模型:
class ModelA(models.model):
... #some fields
score = models.IntegerField()
class ModelB(models.model)
... #some fields
related_model=models.OneToOneField(ModelA)
score = models.IntegerField(default=related_model.score)
Run Code Online (Sandbox Code Playgroud)
我想要的是,在创建 ModelB 时,它的分数字段将填充与 ModelA 具有 OneToOne 关系的分数值。
我尝试过设置,score = models.IntegerField(default=related_model.score)但在迁移时出现错误:AttributeError: 'OneToOneField' object has no attribute 'score'
我还尝试在 ModelB 下定义一个方法,如下所示并将其传递给默认值:
def get_score(self, *args, **kwargs):
return self.threat.score
Run Code Online (Sandbox Code Playgroud)
这也行不通。当我设置时default=get_score()出现错误:missing one required positional argument: self
如何自动将模型的字段设置为其相关模型(通过 OneToOne Relation)字段的字段?
换句话说,我有一个这样的列表[10, 11, 22, 6, 4, 9],我希望它把所有的单个整数相加。所以,1 + 0 + 1 + 1 + 2 + 2 + 6 + 4 + 9。
我已经尝试在sum网上使用该功能和其他各种建议,但我仍然迷失了方向。我能做些什么来分解整数,以便我可以对各个部分求和?切片?索引?很高兴回答任何问题!!!
我正在开发一个基于云的后端 HTTP 服务,该服务将公开用于与一些本地系统集成。客户端系统是由外部供应商定制的,它们是具有自己的数据库的后端系统。这些系统部署在我们客户的公司中,我们无权访问它们,也无法控制它们。我们向供应商提供我们的 API 规范,他们实施客户端代码。
我的服务与客户端交换的数据格式基于XML并遵循一定的标准。供应商用不同的编程语言实现他们的客户端系统,随着时间的推移,新的供应商将会出现。我希望尽可能多的客户能够使用我的服务。
我的大部分服务 API 都是类似 REST 的:它接收 HTTP 请求,处理它们,然后发回 HTTP 响应。
此外,我的服务积累了一些数据状态变化,需要定期将这些数据推送到客户端系统。由于以下限制,此用例似乎不适合传统的客户端-服务器 HTTP 请求-响应模型。
由于业务的性质,客户端系统无法打开自己的 HTTP API 端点,因此我的服务无法与它们建立出站 HTTP 连接来传递数据状态通知。即使用 WebHooks 不是一种选择。
同时,我的服务利益相关者需要记录确认数据状态通知已被客户端系统接受,因此像 Amazon SNS 这样的即发即忘系统似乎不适用。
我正在考虑解决这个问题的几种方法,但我不确定我是否错过了一些简单的选项或一些已经解决问题的技术。于是就有了这个问题。
问题文本已更新:选项移至我自己的答案。
我正在编写一些代码(Python)来从网页中抓取文本。我的目标是找到一种方法来过滤/删除网页上不在主文章中的段落(例如广告、其他文章的链接等)。
到目前为止,我一直在使用该.find_all("p")命令仅从文本中提取段落,虽然成功,但也删除了许多不在每篇文章的主体/正文中的基本段落。这是我现在的代码:
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup
URLs = [
"https://www.elsoldetoluca.com.mx/local/proponen-sistemas-para-captar-agua-pluvial-en-el-edomex-6585661.html",
"https://www.elsoldetoluca.com.mx/local/agua-de-acuifero-del-valle-de-toluca-solo-debe-ser-para-uso-de-consumo-humano-especialista-4146232.html"
]
for url in URLs:
req = Request(url, headers={"User-Agent": 'Mozilla/5.0'})
page = urlopen(req)
paragraphs = []
htmlParse = BeautifulSoup(page.read(), 'lxml')
for para in htmlParse.find_all("p"):
paragraph = para.get_text().replace("\n", " ")
paragraphs = paragraphs + [paragraph]
text = str("\n\n".join(paragraphs))
Run Code Online (Sandbox Code Playgroud)
所以我正在寻找一种聪明的方法来过滤掉主文章中没有的段落。重要的是,此方法可以应用于任何网页,因为我在大约 100 个随机网站上使用此代码。我已经研究过的事情是过滤包含某些单词的段落,但是,我宁愿不这样做,因为这样会遗漏很多信息/段落。另外,我一直在考虑省略具有某些名称的 HTML 部分(例如https://matix.io/extract-text-from-webpage-using-beautifulsoup-and-python/),但我发现这不是非常有效...
有人知道如何优雅地做到这一点吗?谢谢!
python ×3
django ×1
grpc ×1
html ×1
http ×1
integer ×1
list ×1
server-push ×1
web-scraping ×1
websocket ×1