python - Django 视图中的“HTTP 状态代码必须是整数”错误
问题描述
我在我的 Django 网站上有一个小的抓取视图,但我在行中收到错误“HTTP 状态代码必须是整数”:
return HttpResponse(request, 'scrapingscore.html', {'original_link':original_link})
def scraping(request):
rootlink = 'https://www.transfermarkt.pl'
link = 'https://www.transfermarkt.pl/schnellsuche/ergebnis/schnellsuche?query='
if request.method == 'POST':
data = request.POST.get("textfield")
if data == '':
empty = 'Data is empty'
return HttpResponse(request, 'scrapingscore.html', {'empty':empty})
else:
data = data.replace(" ", "+")
search = link + data + '&x=0&y=0'
req = Request(
search,
data=None,
headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
}
)
req = urlopen(req).read()
soup = BeautifulSoup(
req,
features="lxml"
)
anchor = soup.find("a",{"class":"spielprofil_tooltip"})
link = anchor.get("href")
original_link = rootlink + link
return HttpResponse(request, 'scrapingscore.html', {'original_link':original_link})
return render(request, 'scraping.html')
我不知道为什么会收到错误消息“HTTP 状态代码必须是整数”。我在这一行的 dict 中有一个参数有错误,我不知道如何修复它,我认为它会起作用,但事实并非如此。当用户输入为空白时,我也收到此错误
return HttpResponse(request, 'scrapingscore.html', {'empty':empty})
. 编辑:我添加了新行:
template = loader.get_template('scrapingscore.html')
context = {
'original_link': original_link,
}
现在在这条错误的行中我有:
return HttpResponse(template.render(context, request))
但现在网站没有重定向到“scrapingscore.html”——提交输入后它停留在“scraping.html”上。
抓取.html
<form action="{% url 'scraping' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input name="text" type="text" />
<input type="submit" value="submit">
</form>
解决方案
您将错误的参数传递给HttpResponse类。阅读如何使用 HttpResponse 类。
从我看到你错误地使用了响应类,它更像是你想使用TemplateResponse类:
return TemplateResponse(request, 'scrapingscore.html', {'original_link':original_link})
因为 HttpResponse 类不使用 template( 'scrapingscore.html'
) 和 context( {'original_link':original_link}
)。
推荐阅读
- javascript - Sucrase 只移动 JS 文件
- angular - ng-select 防止预先输入的特殊字符
- r - 可视化缺失值的方法错误
- javascript - 如何在服务器nodejs上的新连接上获取cookie
- json - 测试话语:与“已发布”的比较产生的 JSON 字符串与通过查询 API 获得的结果完全不同
- ios - Firebase 函数设置值
- react-native - React-Native TextInput 在子组件中落后一步
- ffmpeg - ffmpeg 中的输出流 0:1 错误中的无效丢弃 st:0 和非单调 DTS
- oracle - PowerBI Web:连接到 Oracle 云数据库
- r - 取消嵌套的 tidydrc 模型