2014-01-06 4 views
-1

Я использую Django 1.5, Python 2.7 на окнах 7. У меня есть следующее представление, которое извлекает и отображает ссылки из разных источников. Он работает нормально. Но я не знаю, как: 1. сохранить данные в базе данных и 2. сортировать по дате.Как автоматически сохранить мои данные в моей базе данных

PS: У меня есть подобный вопрос вопрос здесь, но, похоже, я не ясно, что достаточно:

Python/Django Extract and append only new links

Я надеюсь, что кто-то может помочь мне здесь.

views.py:

def foo(): 
    site = "http://www.foo.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 

Это мой первый проект программирования, и я могу Не заработайте эту часть, независимо от того, что я попробовал/искал. Любая помощь будет принята с благодарностью.

Благодаря

+0

Вы должны показать, что вы уже пытались сохранить в db. Ни один из приведенных выше кодов не использует модель вообще. –

+0

вот что я с нетерпением жду. Я делаю « – fromPythonImportNoob

+0

@ DanielRoseman, вы отказались от моего вопроса, потому что я прошу о помощи? Я не знаю, как сохранить мои данные в базе данных, и это единственная причина, по которой я опубликовал вопрос, но вы проигнорировали, потому что я не делал то, что я говорю, я не знаю, как это сделать. Пожалуйста, я бы оценил это, если бы вы помогли мне независимо от нисходящего потока. спасибо – fromPythonImportNoob

ответ

-2

Я не использовал Python с помощью шаблонов Django в течение долгого времени, но это выглядит как типичный проект, связанный MVC. В любом случае вам нужно будет подключиться к базе данных, поэтому вам нужно будет установить какой-то Python-совместимый модуль базы данных. MySQLdb Я считаю, что имеет реализацию Python. Затем вам потребуется сериализовать данные, которые вы возвращаете из своих веб-запросов, и использовать какой-то API-интерфейс для сохранения. Я считаю, что модуль рассола имеет дело с постоянством Python. Стойкость более или менее экономит данные.

+0

Django уже имеет встроенный слой db. –

+0

В любом случае, есть файл конфигурации, который должен быть заполнен параметрами подключения к базе данных, чтобы django фактически сохранялся. –

Смежные вопросы