[英]Python/Django list object has not attribute 'status_code'
我有一个从指定站点提取链接的 python 脚本,我想使用 Django 制作一个单页 webapp。 这是我的第一个 Python 和 Django 项目,所以我希望它尽可能简单以避免任何麻烦,但我有点卡住了。
这是我的意见.py
from django.http import HttpResponse
from bs4 import BeautifulSoup
import urllib2, sys
import urlparse
import re
import time, threading
def businessghana(request):
site = "http://www.businessghana.com/portal/jobs"
hdr = {'User-Agent' : 'Mozilla/5.0'}
req = urllib2.Request(site, headers=hdr)
jobpass = urllib2.urlopen(req)
soup = BeautifulSoup(jobpass)
for tag in soup.find_all('a', href = True):
tag['href'] = urlparse.urljoin('http://www.businessghana.com/portal/', tag['href'])
return map(str, soup.find_all('a', href = re.compile('.getJobInfo')))
threading.Timer(3600, businessghana).start()
10 个不同的站点大约有 10 个这样的函数,但它们具有相似的性质,所以对于 Django 项目,我只使用其中的 1 个。 再次,保持简单并避免混乱
这是我的 urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^hello/$', 'listing.views.businessghana'),
url(r'^admin/', include(admin.site.urls)),
)
这是我的models.py:
(我想我在胡说八道,但这是我能想到的最好的)
class jobLinks(models.Model):
links = models.CharField(max_length = 200)
pub_date = models.DateTimeField('date retrieved')
def __unicode__(self):
return self.links
当我访问网址时:
127.0.0.1:8000/hello/
我收到错误“列表”对象没有属性“状态代码”。
假设这是一个单页站点,仅显示从视图中的函数检索到的链接。 我还有其他计划让它更复杂一些,但我想从这个开始。
请问我错过了什么?
models.py 内容有意义吗?
提前致谢
Django 视图必须返回一个 HttpResponse,而不是一个列表。
就像@bruno 所说的 Django 视图必须返回 HttpResponse。
为此,我只需将 return 语句包装在 HttpResponse 周围,如下所示:
return HttpResponse(map(str, soup.find_all('a', href = re.compile('.getJobInfo'))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.