【问题标题】:I got title and url. How to make link?我得到了标题和网址。怎么做链接?
【发布时间】:2014-07-06 15:54:16
【问题描述】:

我有新闻标题和网址。如何进入链接?

这就是我提取标题和网址的方式:

def Save(request):
    news = []
    links = []
    url ="http://www.basketnews.lt/lygos/59-nacionaline-krepsinio-asociacija/2013/naujienos.html"
    r = requests.get(url)
    soup = BeautifulSoup(r.content)
    nba = soup.select('div.title > a')
    for i in reversed(nba):
        news.append(i.text) # Here I have list of titles
        links.append(i["href"]) # list of urls
            # Here I'm saving that info to my model. Ignore it
            save_it = Naujienos(title = i.text, url = "Basketnews.lt" + i['href']) # 
            save_it.save()

        return render(request, 'Titles.html', {'news': news, "links": links})

这是我的 HTML:

{% for i in news%}
    {% for o in links%}
        <a href={{o}}>{{i}}</a> 
    {% endfor %} 
{% endfor %} 

我想你已经知道这种制作链接已经过时了。那么,正确的做法是什么?

【问题讨论】:

  • 它不起作用吗?有什么错误? {{ i }} 应该可以工作
  • 另外,render 方法好像必须要去掉...

标签: python django python-2.7


【解决方案1】:

试试这样的怎么样?

from collections import namedtuple

Link = namedtuple('Link', ['title', 'url'], verbose=True)


def Save(request):
    ...
    for i in reversed(nba):
        links.append(Link(title=i.text, url=i["href"])) # list of urls
        ...

那么模板将是:

{% for link in links %}
    <a href="{{link.url}}">{{link.title}}</a> 
{% endfor %}

如果你想坚持使用两个列表,那么你应该看看this question

【讨论】:

    猜你喜欢
    • 2014-02-18
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2011-09-25
    • 2014-10-25
    • 2023-03-17
    • 2022-07-31
    • 1970-01-01
    相关资源
    最近更新 更多