Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将我的刮取数据自动保存到数据库_Python_Django - Fatal编程技术网

Python 如何将我的刮取数据自动保存到数据库

Python 如何将我的刮取数据自动保存到数据库,python,django,Python,Django,我在Windows7上使用Django1.5和Python2.7。 我有以下观点,可以从各种来源提取和显示链接。它工作正常。但我不知道如何: 将数据保存到数据库并 按提取的日期排序 PS:我这里有一个类似的问题,但看起来我还不够清楚: 我希望有人能在这里帮助我 views.py: def foo(): site = "http://www.example.com/portal/jobs" hdr = {'User-Agent' : 'Mozilla/5.0'

我在Windows7上使用Django1.5和Python2.7。 我有以下观点,可以从各种来源提取和显示链接。它工作正常。但我不知道如何:

  • 将数据保存到数据库并
  • 按提取的日期排序
  • PS:我这里有一个类似的问题,但看起来我还不够清楚:

    我希望有人能在这里帮助我

    views.py:

    def foo():
        site = "http://www.example.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')))
    
    def example():
        site = "http://example.com"
        hdr = {'User-Agent' : 'Mozilla/5.0'}
        req = urllib2.Request(site, headers=hdr)
        jobpass = urllib2.urlopen(req)
        soup = BeautifulSoup(jobpass)
        return map(str, soup.find_all('a', href = re.compile('.display-job')))
    
     foo_links = foo()
     example_links = example()
    
     def all_links():
         return (foo_links + example_links)
    
     def display_links(request):
        name = all_links()
        paginator = Paginator(name, 25)
        page = request.GET.get('page')
        try:
            name = paginator.page(page)
        except PageNotAnInteger:
            name = paginator.page(1)
        except EmptyPage:
            name = paginator.page(paginator.num_pages)
    
        return render_to_response('jobs.html', {'name' : name}) 
    
    我的模板如下所示:

    <ol>
    {% for link in name %}
      <li> {{ link|safe }}</li>
    {% endfor %}
     </ol>
     <div class="pagination">
    <span class= "step-links">
        {% if name.has_previous %}
            <a href="?page={{ names.previous_page_number }}">Previous</a>
        {% endif %}
    
        <span class = "current">
            Page {{ name.number }} of {{ name.paginator.num_pages}}.
        </span>
    
        {% if name.has_next %}
            <a href="?page={{ name.next_page_number}}">next</a>
        {% endif %}
    </span>
    </div>
    
    from django.db import models
    
    class jobLinks(models.Model):
        links = models.URLField()
        pub_date = models.DateTimeField('date retrieved')
    
        def __unicode__(self):
            return self.links
    
    这是我的第一个编程项目,无论我尝试/搜索了什么,我都无法让这部分工作 任何帮助都将不胜感激


    谢谢

    我已经很长时间没有在Django模板中使用Python了,但这看起来像是一个典型的MVC相关项目。在任何情况下,都需要连接到数据库,因此需要安装某种与Python兼容的数据库模块。我相信MySQLdb有一个Python实现。然后,您需要序列化从web请求返回的数据,并使用某种持久性API。我相信pickle模块处理Python持久性。持久性或多或少是保存数据

    您应该显示您已经尝试保存到数据库的内容。上面的代码都没有使用这个模型。这就是我期待做的。我知道@DanielRoseman你因为我请求帮助而否决了我的问题?我不知道如何将我的数据保存到数据库中,这也是我发布问题的唯一原因,但你投了反对票,因为我没有按照我说的做,我不知道如何做。请尽管我投了反对票,如果你能帮助我,我会非常感激的。谢谢,我不知道你为什么认为是我投了反对票。事实并非如此。很抱歉做出了错误的假设。这是我剩下的唯一一段代码,我有点失去了继续从事这个宠物项目的动力。请看这是我在pastebin中的整个视图的链接。你们可以看到,我已经投入了足够的努力,而不仅仅是要求你们给我代码来完成一个项目。请看这个,看看你能如何帮助我。无论如何,为了让django真正持久化,需要用数据库连接参数填充某种配置文件。