Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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 使用Jinja2在网页上显示元组的详细信息_Python_Django_Python 2.7_Jinja2 - Fatal编程技术网

Python 使用Jinja2在网页上显示元组的详细信息

Python 使用Jinja2在网页上显示元组的详细信息,python,django,python-2.7,jinja2,Python,Django,Python 2.7,Jinja2,我正在用python编写一个脚本,它将从我的服务器获取按需资产的详细信息。目前我正在获取该资产的标题、海报和评级。我可以将这些细节放入一个命名的元组中。从那里我需要打印,包括在网页上使用Jinja2显示海报。我不确定我在这里错过了什么。我写的代码是 Test.py 模板/test.html 或者有没有其他方法可以在网页上获取这些详细信息?我知道我不是在填充网页来获取这些详细信息,但我不知道该怎么做 更改了test.py中的代码。删除namedtuple并使用列表列表来提取值。在呈现时将列表传

我正在用python编写一个脚本,它将从我的服务器获取按需资产的详细信息。目前我正在获取该资产的标题、海报和评级。我可以将这些细节放入一个命名的元组中。从那里我需要打印,包括在网页上使用Jinja2显示海报。我不确定我在这里错过了什么。我写的代码是

Test.py

模板/test.html


或者有没有其他方法可以在网页上获取这些详细信息?我知道我不是在填充网页来获取这些详细信息,但我不知道该怎么做

更改了test.py中的代码。删除namedtuple并使用列表列表来提取值。在呈现时将列表传递到html文件

test.py

test.html


这有点不清楚。测试的其余部分在哪里,它在哪里实际呈现模板?到底出了什么问题?丹。。这就是我怀疑的地方。如何呈现模板?对不起,我真的不明白你的问题是什么。您可以使用render方法以与任何其他模板完全相同的方式渲染它-请参见.Dan。。这是我第一次使用Django。当我查看另一个示例时,要渲染的命令是\u从\u解析的\u template=template.renderfoo='Hello World!'输出的但是如何呈现这个特定的test.html?我希望现在清楚了。这不是Django,是Jinja2。你为什么不能在这里用那种精确的方法?
import requests
from collections import namedtuple
from jinja2 import Environment, FileSystemLoader

r = requests.get("http://172.19.37.3:5600/cmdc/content?region=24802&currency=myr&catalogueId=24802&isPurchasable&filter=source~vod&filter=source~group&count=255&collapse=true&sort=%2btitle&pset=Group1")

data = r.json()
assets = {}
AssetDetails = namedtuple('AssetDetails', 'title, parental_rating, poster_uri')

env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('test.html')

for asset in data['contents']:
    for media_uri in asset['media']:
        poster_uri = ""
        if media_uri['classification'] == "urn:nnds:Metro:metadata:MediaTypeCS:2007:2.1":
            poster_uri = media_uri['uri']

        assets[asset['id']] = AssetDetails(asset['title'], asset['parentalRating']['rating'], poster_uri)
        #print assets[asset['id']]
        if poster_uri != "":
           print " ".join(('Title:', assets[asset['id']].title))
           print " ".join(('Parental_Rating:', str(assets[asset['id']].parental_rating)))
           print " ".join(('Poster_uri:', assets[asset['id']].poster_uri))
<html lang="en">
<head>
    <title>My Webpage</title>
</head>
<body>
{% for item in c['assets']: %}
   <h1>{{ items['title'] }}</h1>
   <ul>
    <img src="{{ item['poster_uri'] }}" />
    <li>Id: {{ item['parentalRating'] }} </li>
   </ul>
{% endfor %}
import requests, re
from jinja2 import Environment, FileSystemLoader
r = requests.get("http://172.19.37.3:5600/cmdc/content?region=24802&currency=myr&catalogueId=24802&isPurchasable&filter=source~vod&filter=source~group&count=30&collapse=true&sort=%2btitle&pset=Group1")

env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('test.html')
data = r.json()
assets = list()

for asset in data['contents']:
    for media_uri in asset['media']:
        poster_uri = ""
        if media_uri['classification'] == "urn:nnds:Metro:metadata:MediaTypeCS:2007:2.1":
            poster_uri = media_uri['uri']
            a_id = (asset['id'])
            id = a_id[a_id.index('://') + 3:]
            a_id = id
            asset_id = a_id.encode('utf-8')
            asset_title = asset['title'].encode('utf-8')
            asset = [asset_id, asset_title, poster_uri]
            assets.append(asset)
            poster_uri = poster_uri.encode('utf-8')

templateVars = { "VOD" : assets }

outputText = template.render( templateVars )
with open("VOD_Parsing.html", "wb") as fh:
    fh.write(outputText)
<!doctype html>
<html lang="en">
<body>

<div id="content">
   {% for item in VOD %}
      <li>ID: {{ item[0] }}</li><li> Title: {{ item[1] }}</b></li>
      <img src="{{ item[2] }}" alt="dummy.jpg"> </img>
   {% endfor %}
</div>
</body>
</html>