我了解“ this”关键字是指当前/即时对象。在观看React.js教程时,我看到讲师将关键字与多个对象一起使用。代码如下:
class Counter extends Component {
state = {
count: 0
};
styles = {
fontSize: 10
};
render() {
return (
<div>
<h1 style={this.styles}>Hello</h1>
<span>{this.formatCount()}</span>
</div>
);
}
formatCount() {
const { count } = this.state;
return count === 0 ? "Zero" : count;
}
}
Run Code Online (Sandbox Code Playgroud)
在formatCount()内部,为什么要引用this.state而不是state.count?另外,为什么不formatCount() 代替this.formatCount()?讲师一直说this是指当前对象,但他this.objectname.properties每次都在写作。这是为什么?我不能仅使用对象名来区分对象吗?
我有一个 lambda 函数,它发送邮件并MessageID在电子邮件发送成功时返回as 输出,如果发送失败则返回错误消息。现在我想创建一个架构,将返回的电子邮件状态保存在 SNS 主题中。将有另一个 Lambda 函数作为订阅者,它将由 SNS 主题的电子邮件状态触发。
示例:如果发布者 Lambda 返回MessageID,则订阅者 Lambda 将针对错误消息返回“是”、“否”。有可能实现吗?如果没有,我可以去最近的地方是什么?
到目前为止我所做的
以下是文档之后的订阅者功能代码:
import json
def lambda_handler(event, context):
# TODO implement
return {
# 'statusCode': 200,
# 'body': json.dumps('Hello from Lambda!')
message = json.loads(event['Records'][0]['Sns']['Message'])
print("JSON: " + json.dumps(message))
return message
}
Run Code Online (Sandbox Code Playgroud)
我将消息发布到 …
我正在尝试在现有的博客项目上学习 Django Rest。我的项目有一个名为“BlogPost”的模型。我在那里创建了一个端点来获取 blogpost 对象。我可以从 django admin 成功创建博客,但是每当我给出 url“ http://127.0.0.1:8000/api/postings/1/ ”时,它都会显示错误"TemplateDoesNotExist at /api/postings/1/",而我的终端中没有任何错误。表明"GET /api/postings/1/ HTTP/1.1" 500 85630。谁能帮助我我哪里做错了?
from django.conf import settings
from django.db import models
from django.urls import reverse
class BlogPost(models.Model):
# pk aka id --> numbers
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=120, null=True, blank=True)
content = models.TextField(max_length=120, null=True, blank=True)
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.user.username)
Run Code Online (Sandbox Code Playgroud)
视图.py:
from rest_framework import generics
from postapp.models import BlogPost
from .serializers import BlogPostSerializer
class BlogPostRudView(generics.RetrieveUpdateDestroyAPIView):
lookup_field = 'pk' …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用请求和beautifulsoup 抓取页面的所有HTML 元素。我正在使用 ASIN(亚马逊标准识别码)来获取页面的产品详细信息。我的代码如下:
from urllib.request import urlopen
import requests
from bs4 import BeautifulSoup
url = "http://www.amazon.com/dp/" + 'B004CNH98C'
response = urlopen(url)
soup = BeautifulSoup(response, "html.parser")
print(soup)
Run Code Online (Sandbox Code Playgroud)
但输出并未显示页面的整个 HTML,因此我无法进一步处理产品详细信息。这有什么帮助吗?
编辑 1:
从给定的答案中,它显示了机器人检测页面的标记。我研究了一下并找到了两种破坏它的方法:
我用 bs4 提取了一大块 html,如下所示
<div class="a-section a-spacing-small" id="productDescription">
<!-- show up to 2 reviews by default -->
<p>Satin Smooth Universal Protective Wax Pot Collars by Satin Smooth</p>
</div>
Run Code Online (Sandbox Code Playgroud)
提取我使用的文本 text.strip()
output.text()
Run Code Online (Sandbox Code Playgroud)
它给了我输出 "TypeError: 'str' object is not callable"
当我使用output.get_text()and 时output.getText(),我得到了想要的文本
这3个有什么区别?为什么 get_text() 和 getText() 给出相同的输出?
我试图根据这个答案以表格格式显示 json 数据。每次我运行这个,它都会显示这个错误Line 15: '$' is not defined no-undef。我在第 15 行开始 ajax 调用。我尝试 const $ = window.$;在代码顶部添加,但这并不能解决任何问题。
class App extends React.Component {
constructor(){
super()
this.state = {
data: []
}
}
componentDidMount() {
$.ajax({
url: "http://www.mocky.io/v2/5c3f2a6c3500004d00ec3789",
type: "GET",
dataType: 'json',
ContentType: 'application/json',
success: function(data) {
this.setState({data: data});
}.bind(this),
error: function(jqXHR) {
console.log(jqXHR);
}.bind(this)
})
}
render() {
return (
<table>
<tbody>{this.state.data.map(function(item, key) {
return (
<tr key = {key}>
<td>{item.name}</td>
<td>{item.post}</td>
<td>{item.country}</td>
<td>{item.contact}</td>
</tr>
) …Run Code Online (Sandbox Code Playgroud)我有一个 lambda 函数,我在其中发送电子邮件,并且邮件模板作为对象从 S3 存储桶中获取。我已经在我的计算机本地运行了代码并且工作正常。当我将其粘贴到 lambda 函数中时,它显示以下错误。
Response:
{
"errorMessage": "Parameter validation failed:\nInvalid type for parameter Message.Body.Html.Data, value: b\"<html>\\n<head></head>\\n<body>\\n <h1>Amazon SES Test (SDK for Python)</h1>\\n <p>This email was sent with\\n <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the\\n <a href='https://aws.amazon.com/sdk-for-python/'>\\n AWS SDK for Python (Boto)</a>.</p>\\n</body>\\n</html>\", type: <class 'bytes'>, valid types: <class 'str'>",
"errorType": "ParamValidationError",
"stackTrace": [
[
"/var/task/lambda_function.py",
65,
"lambda_handler",
"Source=SENDER,"
],
[
"/var/runtime/botocore/client.py",
314,
"_api_call",
"return self._make_api_call(operation_name, kwargs)"
],
[
"/var/runtime/botocore/client.py",
586,
"_make_api_call",
"api_params, operation_model, context=request_context)"
],
[
"/var/runtime/botocore/client.py",
621,
"_convert_to_request_dict",
"api_params, …Run Code Online (Sandbox Code Playgroud) python ×4
aws-lambda ×2
javascript ×2
reactjs ×2
amazon-sns ×1
artisan ×1
boto3 ×1
django ×1
html ×1
laravel ×1
php ×1
python-3.x ×1
this ×1
web-scraping ×1