繁体   English   中英

Python/Django 列表对象没有属性“status_code”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM