本文整理汇总了Python中Cheetah.Template.Template.respond方法的典型用法代码示例。如果您正苦于以下问题:Python Template.respond方法的具体用法?Python Template.respond怎么用?Python Template.respond使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cheetah.Template.Template
的用法示例。
在下文中一共展示了Template.respond方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_config_from_template
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def get_config_from_template(self, tmpl_path, vars_dict):
logging.debug("template path is %s", tmpl_path)
logging.debug("vars_dict is %s", vars_dict)
if not os.path.exists(tmpl_path) or not vars_dict:
logging.info("Template dir or vars_dict is None!")
return {}
searchList = []
copy_vars_dict = deepcopy(vars_dict)
for key, value in vars_dict.iteritems():
if isinstance(value, dict):
temp = copy_vars_dict[key]
del copy_vars_dict[key]
searchList.append(temp)
searchList.append(copy_vars_dict)
# Load base template first if it exists
base_config = {}
base_tmpl_path = os.path.join(os.path.dirname(tmpl_path), 'base.tmpl')
if os.path.isfile(base_tmpl_path) and base_tmpl_path != tmpl_path:
base_tmpl = Template(file=base_tmpl_path, searchList=searchList)
base_config = json.loads(base_tmpl.respond(), encoding='utf-8')
base_config = json.loads(json.dumps(base_config), encoding='utf-8')
# Load specific template for current adapter
tmpl = Template(file=open(tmpl_path, "r"), searchList=searchList)
config = json.loads(tmpl.respond(), encoding='utf-8')
config = json.loads(json.dumps(config), encoding='utf-8')
# Merge the two outputs
config = util.merge_dict(base_config, config)
logging.debug("get_config_from_template resulting %s", config)
return config
示例2: usertasks
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def usertasks(self,task_name=None,pageNumber=1,nPerPage=1500,callback=None,**kwargs):
''' usertasks returns celery tasks perform and the link to the task result page.
task_name- string optional
pageNumber and nPerPage is optional
'''
db=self.db[self.database][self.collection]
try:
page=int(pageNumber)
perPage=int(nPerPage)
except:
page=1
perPage=100
try:
if cherrypy.request.login:
user = cherrypy.request.login
else:
user = "guest"
except:
pass
if not task_name:
res=db.find({'user':user}).skip((page-1)* int(nPerPage)).limit(int(nPerPage)).sort([('timestamp',-1)])
rows=db.find({'user':user}).count()
else:
res=db.find({'user':user,'task_name':task_name}).skip((page-1) * int(nPerPage)).limit(int(nPerPage)).sort([('timestamp',-1)])
rows=db.find({'user':user,'task_name':task_name}).count()
ePage= int(math.ceil(float(rows)/float(perPage)))
nameSpace = dict(tasks=res,page=page,endPage=ePage)#tresult)
#t = Template(file = templatepath + '/usertasks.tmpl', searchList=[nameSpace])
if callback:
t = Template(file = templatepath + '/usertasks_call.tmpl', searchList=[nameSpace])
return str(callback) + "(" + json.dumps({'html':t.respond()}) + ")"
else:
t = Template(file = templatepath + '/usertasks.tmpl', searchList=[nameSpace])
return t.respond()
示例3: tecodata
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def tecodata(self,site='US-HA1',upload=None,model=None,callback=None,**kwargs):
''' usertasks returns celery tasks perform and the link to the task result page.
task_name- string optional
pageNumber and nPerPage is optional
'''
#db=self.db[self.database][self.collection]
if model:
if upload:
yrs=self.db[self.database]['uploaded_grass'].find({'Site':site,'user':upload}).distinct('year')
else:
yrs=self.db[self.database]['years'].find_one({'Site':site,'type':model})['years']
else:
if upload:
yrs=self.db[self.database]['uploaded_data'].find({'Site':site,'user':upload}).distinct('Year')
else:
#yrs=self.db[self.database][self.collection].find({'Site':site}).distinct('Year')
yrs=self.db[self.database]['years'].find_one({'Site':site,'type':'default'})['years']
yrs.sort()
nameSpace = dict(years=yrs,site=site,start=yrs[0],end=yrs[-1])
if callback:
cherrypy.response.headers['Content-Type'] = "application/json"
t = Template(file = templatepath + '/tecodata_call.tmpl', searchList=[nameSpace])
return str(callback) + "(" + json.dumps({'html':t.respond()}) + ")"
else:
cherrypy.response.headers['Content-Type'] = "text/html"
t = Template(file = templatepath + '/tecodata.tmpl', searchList=[nameSpace])
return t.respond()
示例4: generate_download_script
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def generate_download_script(root="", arch="", tmpl="", docker_tmpl="", default_packages="",
special_packages="", special_packages_script_dir="", special_packages_dir=""):
package_name_list = get_packages_name_list(get_file_list(root, arch), special_packages) if root else []
tmpl = Template(file=tmpl, searchList={'packages':package_name_list, 'default_packages':default_packages})
with open('work/repo/install_packages.sh', 'w') as f:
f.write(tmpl.respond())
make_script = []
for i in special_packages:
name = 'make_' + i + '.sh'
if os.path.exists(os.path.join(special_packages_script_dir, name)):
make_script.append(name)
searchList = {'scripts':make_script}
if os.path.exists(special_packages_dir):
special_packages_names=[]
for parent, dirname, filenames in os.walk(special_packages_dir):
for filename in filenames:
if os.path.isfile(os.path.join(parent, filename)):
special_packages_names.append(filename)
searchList.update({'spcial_packages':special_packages_names})
Dockerfile=os.path.basename(docker_tmpl).split('.')[0]
tmpl = Template(file=docker_tmpl, searchList=searchList)
with open(os.path.join('work/repo', Dockerfile), 'w') as f:
f.write(tmpl.respond())
示例5: result
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def result(self,taskid,callback=None,**kwargs):
''' Generates result page. This description provides provenance of tombstone
'''
db=self.db[self.database]
resb = {}
tresult=db['cybercom_queue_meta'].find({'_id':taskid})
if not tresult.count() == 0:
resb['Completed']=str(tresult[0]['date_done'])
resb['Result'] = pickle.loads(tresult[0]['result'])#.encode())
try:
urlcheck = commands.getoutput("wget --spider " + resb['Result'] + " 2>&1| grep 'Remote file exists'")
if urlcheck:
resb['Result']='<a href="' + resb['Result'] + '" target="_blank">' + resb['Result'] + '</a>'
except:
pass
resb['Status'] = tresult[0]['status']
resb['Traceback'] =pickle.loads( tresult[0]['traceback'])#.encode())
if isinstance(resb['Result'], type(resb)):
if 'task_id' in resb['Result']:
sub= True
sub_taskid = resb['Result']['task_id']
else:
sub=False
sub_taskid = None
else:
sub=False
sub_taskid = None
nameSpace = dict(tomb=[resb],haschild=sub,sub_taskid=sub_taskid)
if callback:
t = Template(file=templatepath + '/tomb_result_call.tmpl', searchList=[nameSpace])
return str(callback) + "(" + json.dumps({'html':t.respond()}) + ")"
else:
t = Template(file=templatepath + '/tomb_result.tmpl', searchList=[nameSpace])
return t.respond()
示例6: output_result
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def output_result(self, methodname, template, result, action_metadata, outf,
return_template=False):
"""
Renders a response body
"""
from Cheetah.Template import Template
# any result with custom serialization
if action_metadata.get('return_type') == 'plain':
outf.write(str(result))
elif callable(result):
outf.write(result())
# JSON with simple serialization (dict -> string)
elif action_metadata.get('return_type') == 'json':
json.dump(result, outf)
# Template
elif type(result) is DictType:
self.add_globals(result, methodname, action_metadata)
if template.endswith('.tmpl'):
template_class = self._get_template_class(template[:-5])
tpl_ans = template_class(searchList=[result, self.args])
else:
tpl_ans = Template(template, searchList=[result, self.args])
if return_template:
return tpl_ans
tpl_ans.respond(CheetahResponseFile(outf))
示例7: report
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def report(self,taskid,callback=None,**kwargs):
''' Generates task result page. This description provides provenance and all information need to rerun tasks
taskid is required
'''
db=self.db[self.database]
res=db[self.collection].find({'task_id':taskid})
resb = {}
tresult=db['cybercom_queue_meta'].find({'_id':taskid})
if not tresult.count() == 0:
resb['Completed']=str(tresult[0]['date_done'])
resb['Result'] = pickle.loads(tresult[0]['result'])#.encode())
try:
urlcheck = commands.getoutput("wget --spider " + resb['Result'] + " 2>&1| grep 'Remote file exists'")
if urlcheck:
resb['Result']='<a href="' + resb['Result'] + '" target="_blank">' + resb['Result'] + '</a>'
except:
pass
resb['Status'] = tresult[0]['status']
resb['Traceback'] =pickle.loads( tresult[0]['traceback'])#.encode())
if isinstance(resb['Result'], type(resb)):
if 'task_id' in resb['Result']:
sub= True
sub_taskid = resb['Result']['task_id']
else:
sub = False
sub_taskid = None
else:
sub= False
sub_taskid = None
else:
sub = False
sub_taskid = None
for row in res:
resclone=row
for k,v in resclone['kwargs'].items():
try:
temp = ast.literal_eval(v)
if type(temp) is dict:
hml = "<table class='table table-border'>"
for key, val in temp.items():
hml = hml + "<tr><td>" + str(key) + "</td><td>" + str(val) + "</td></tr>"
hml = hml + "</table>"
resclone['kwargs'][k]=hml
except:
pass
nameSpace = dict(tasks=[resclone],task_id=taskid,tomb=[resb],haschild=sub,sub_taskid=sub_taskid)
#t = Template(file=templatepath + '/result.tmpl', searchList=[nameSpace])
if callback:
t = Template(file=templatepath + '/result_call.tmpl', searchList=[nameSpace])
return str(callback) + "(" + json.dumps({'html':t.respond()}) + ")"
else:
t = Template(file=templatepath + '/result.tmpl', searchList=[nameSpace])
return t.respond()
示例8: render
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def render(environ, start_response, template_file, var, directory=''):
"""Fonction executant start_response, c'est a dire renvoi la requete au serveur
qui la transmet au client. (en wsgi l'application discute en local avec le serveur)
"""
body = Template(file=os.path.join('htdocs', 'templates', template_file), namespaces=[var, environ])
footer = Template(file=os.path.join('htdocs','templates', 'footer.html'))
status = '200 OK'
"mise en place des headers_http"
header_http = [('Content-Type', 'text/html'), ('Charset', 'UTF-8')]
start_response(status, header_http)
return [set_header_html(var), body.respond(), footer.respond()]
示例9: genConnections
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def genConnections(self, appname, platform, outdir):
outfn = os.path.join(outdir, appname + '-connections.xml')
f = open(outfn, "w")
model = Bunch(messages = self.inputMessages, messageKeys=self.inputMessageKeys, appPartitionName=appname + "_part")
tmpl = Template(ConnectionTemplate, searchList=[{ "platform": platform, "model" : model, "direction": "input"}])
f.write("<A664PortConnections>")
f.write(tmpl.respond())
model = Bunch(messages = self.outputMessages, messageKeys=self.outputMessageKeys, appPartitionName=appname + "_part")
tmpl = Template(ConnectionTemplate, searchList=[{ "platform": platform, "model" : model, "direction": "output"}])
f.write(tmpl.respond())
f.write("</A664PortConnections>")
示例10: add_known
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def add_known(self, pn, *args, **kwargs):
"""Show form for editing known matches"""
packages = KnownGood.select(KnownGood.q.fmName == pn )
if packages.count():
fullName = "%s/%s" % (packages[0].portageCategory,
packages[0].packageName)
else:
fullName = "No matches found!"
template = Template('''
<b>Edit Portage name for:</b> $pn
<br><br>
If a Freshmeat package name does not match,
you can re-map it to a new Gentoo category and package name.
<br><br>
<table>
<tr> <th>Existing match</th>
<th>New package category</th> <th>New package name</tr>
<tr class="alt">
<td>$fullName </td>
<td>
<form name='add_known' action="/known_submit" method=post>
<input type='input' name='new_cat' value=""></td>
<td><input type='input' name='new_pn' value=""></td>
<input type='hidden' name='fmpn' value="$pn">
</tr>
</table>
<center><input type='submit' value="Submit"></center>
</form>''', [locals(), globals()])
yield self.plain_page(template.respond())
示例11: search
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def search( self, searchQuery="", where="" ):
symbols = {}
symbols["searchQuery"] = searchQuery
symbols["where"] = where
symbols["title"] = ""
template = Template( file=os.path.join( const.DATA_ROOT, "assets/webui/search.html.tmpl" ), searchList=symbols )
return template.respond()
示例12: edit
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def edit(self, id=0):
# we really want id as an integer. Since GET/POST parameters
# are always passed as strings, let's convert it.
id = int(id)
if id > 0:
# if an id is specified, we're editing an existing book.
book = Book.get(id)
title = "Edit Book"
else:
# if no id is specified, we're entering a new book.
book = None
title = "New Book"
template = Template('''
<h2>$title</h2>
<form action="./store" method="POST">
<input type="hidden" name="id" value="$id" />
Title: <input name="title" value="$getVar('book.title', '')" /><br/>
Author: <input name="author" value="$getVar('book.author', '')" /><br/>
<input type="submit" value="Store" />
</form>
''', [locals(), globals()])
return template.respond()
示例13: ignore
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def ignore(self, pn, ver, *args, **kwargs):
"""Ignore particular version of pkg"""
pkgs = Packages.select(AND(Packages.q.packageName == pn,
Packages.q.latestReleaseVersion == ver))
print "PN", pn, "VER", ver
if pkgs.count() == 0:
yield self.error_form("Package not ignored.")
pkg = pkgs[0]
template = Template('''
<form method="get" action="/ignore_action/">
<div>
<b>Ignore version $pkg.latestReleaseVersion of $pkg.packageName</b>
<br>
<br>This will ignore this particular freshmeat release version,
<b>not</b> the entire pacakge.</b><br><br>
Freshmeat Release Date: $pkg.latestReleaseDate<br><br>
<a href="http://packages.gentoo.org/search/?sstring=$pkg.packageName">
$pkg.portageCategory/$pkg.packageName-$pkg.portageVersion</a> [
<a class="nav" href="http://freshmeat.net/projects/$pkg.packageName/"
title="Freshmeat Latest Release">$pkg.latestReleaseVersion</a> ]
</div><div><br />
<input type="submit" value="Ignore" />
<input type='hidden' name='pn' value='$pkg.packageName'>
<input type='hidden' name='ver' value='$pkg.latestReleaseVersion'>
</div>
</form>
''', [locals(), globals()])
content = template.respond()
yield self.plain_page(content)
示例14: render_template
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def render_template(plugin, vm, tmplname, context=None):
# Import here to avoid having to build-dep on python-cheetah
from Cheetah.Template import Template
searchList = []
if context:
searchList.append(context)
searchList.append(vm)
tmpldirs = [os.path.expanduser('~/.vmbuilder/%s'),
os.path.dirname(__file__) + '/plugins/%s/templates',
'/etc/vmbuilder/%s']
if vm.templates:
tmpldirs.insert(0,'%s/%%s' % vm.templates)
tmpldirs = [dir % plugin for dir in tmpldirs]
for dir in tmpldirs:
tmplfile = '%s/%s.tmpl' % (dir, tmplname)
if os.path.exists(tmplfile):
t = Template(file=tmplfile, searchList=searchList)
output = t.respond()
logging.debug('Output from template \'%s\': %s' % (tmplfile, output))
return output
raise VMBuilderException('Template %s.tmpl not found in any of %s' % (tmplname, ', '.join(tmpldirs)))
示例15: generate_download_script
# 需要导入模块: from Cheetah.Template import Template [as 别名]
# 或者: from Cheetah.Template.Template import respond [as 别名]
def generate_download_script(root, arch, tmpl):
package_name_list = get_packages_name_list(get_file_list(root, arch))
tmpl = Template(file=tmpl, searchList={'packages':package_name_list})
with open('install_packages.sh', 'w') as f:
f.write(tmpl.respond())