我不理解在python中使用Mako模板的文档。我有一个python文件,我有以下代码:
import json, requests, urllib2
from mako.template import Template
from mako.lookup import TemplateLookup
from pylons.templating import render_mako as render
url="www.data&format=json"
response = urllib2.urlopen(url)
data = json.load(response)
return (Template("hello Luisito! Here is the data: ${data}!").render(json_data=data))
有人可以向我提供有关如何使用mako模板将此json数据呈现到网页的更多详细信息吗?我需要另一个带模板的文件吗?如果是这样,怎么样?
答案 0 :(得分:0)
您需要为json数据添加变量:
url="www.data&format=json"
response = urllib2.urlopen(url)
data = json.load(response)
from mako.template import Template
print(Template("hello Luisito! Here is the data: ${json_data}!").render(json_data=data))
答案 1 :(得分:0)
from mako.template import Template
from mako.lookup import TemplateLookup
from mako import exceptions
from mako.exceptions import RichTraceback
import json
var data = {
"Records": [
{
"pageName":"oracle.html",
"seoMetaData":"A page's description, usually one or two sentences.",
"logoImg":"./images/oracle-cloud-logo-400x336.png",
"logoImgUrl":"http://www.oracle.com",
"description": "Oracle Cloud is a cloud computing service offered by Oracle Corporation providing servers, storage, network, applications and services through a global network of Oracle Corporation managed data centers. The company allows these services to be provisioned on demand over the Internet. Also, we provide the list of companies that use Oracle Cloud.",
"product": "Oracle",
"category": "CRM & Related",
"customerAccount": "125,000 - 150,000"
},
{
"pageName":"microsoft.html",
"seoMetaData":"A page's description, usually one or two sentences.",
"logoImg":"./images/oracle-cloud-logo-400x336.png",
"logoImgUrl":"http://www.microsoft.com",
"description": "Microsoft Cloud is a cloud computing service offered by Microsoft Corporation providing servers, storage, network, applications and services through a global network of Microsoft Corporation managed data centers. The company allows these services to be provisioned on demand over the Internet. Also, we provide the list of companies that use Microsoft Cloud.",
"product": "Microsoft",
"category": "CRM & Related",
"customerAccount": "200,000 - 250,000"
}
]
}
mylookup = TemplateLookup(directories=['./html'], output_encoding='utf-8', encoding_errors='replace')
uri = 'base.html'
def browseLocal(webpageText, filename):
'''Start your webbrowser on a local file containing the text
with given filename.'''
import webbrowser, os.path
strToFile(webpageText, filename)
# webbrowser.open("file:///" + os.path.abspath(filename)) #elaborated for Mac.
def strToFile(text, filename):
"""Write a file with the given name and the given text."""
output = open(filename,"w")
output.write(text)
output.close()
def fileToStr(fileName): # NEW
"""Return a string containing the contents of the named file."""
fin = open(fileName);
contents = fin.read();
fin.close()
return contents
f = open("data.json", "r")
data = f.read()
jsonData = json.loads(data)
list1 = jsonData["Records"]
for val in list1:
pageName = val["pageName"]
seoMetaData = val["seoMetaData"]
logoImg = val["logoImg"]
logoImgUrl = val["logoImgUrl"]
description = val["description"]
product = val["product"]
category = val["category"]
customerAccount = val["customerAccount"]
template = mylookup.get_template(uri)
htmlContent = template.render_unicode(name=pageName, seoMetaData=seoMetaData, logoImg=logoImg, logoImgUrl=logoImgUrl, description=description, product=product, category=category, customerAccount=customerAccount)
browseLocal(htmlContent, pageName)
f.close()