我尝试遍历列表并在视图中返回两个内容并将其显示在我的模板中。我正在抓取数据,我试图获取文本和href,以便我可以在我的模板中使用它们。我是django和python的新手。首先,我尝试在views.py中执行此操作:
for link in soup.find_all('a'):
text = link.text
href = link.get
#links = soup.find_all("a")
ella = "ella"
context = {
#"links": links,
"ella": ella,
"text": text,
"href": href
这在我的template.html中
{% for link in links %}
{{ text }}
{{ href }}
{% endfor %}
我也试过这个
{% for link in links %}
{{ link.text }}
{{ link.href }}
{% endfor %}
它没有工作,在我看来,我收到了以下错误
local variable might be referenced before assignment
所以我添加了全局
global text, href
for link in soup.find_all('a'):
text = link.text
href = link.get
#links = soup.find_all("a")
ella = "ella"
context = {
#"links": links,
"ella": ella,
"text": text,
"href": href
}
但它仍然没有奏效。什么是实现我想要的结果的正确语法。欢迎任何帮助或指导。
答案 0 :(得分:0)
在代码中列出tuples:
links = []
for link in soup.find_all('a'):
links.append((link.text, link.get))
context = {'links': links}
然后在模板中使用它们:
{% for text, href in links %}
{{ text }}
{{ href }}
{% endfor %}
答案 1 :(得分:-1)
您必须在views.py
这样定义您的视图(它是一个函数)(template.html
必须位于templates
目录中):
from django.shortcuts import render
def myview(request):
links = soup.find_all('a')
return render(request, 'template.html', dict(links=links))
您的urls.py
必须包含此视图的绑定:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.myview, name='index'),
]
render()
接收上下文字典作为第三个位置参数。
https://docs.djangoproject.com/en/1.9/topics/http/shortcuts/#django.shortcuts.render