No Pyramid, como faço para retornar o HTML bruto de uma visualizaçã
u sou realmente novo no Pyramid (e bastante novo no framework da web em geral
Estou tentando chegar ao estágio em que posso retornar o HTML bruto de uma visualização, para poder marcar os dados retornados da minha loja mongoD
Minhas__init__.py
no meu projeto de pirâmide é padrão:
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
config = Configurator(root_factory = Root, settings = settings)
config.add_view('hermesweb.views.my_view',
context = 'hermesweb:resources.Root',
renderer = 'hermesweb:templates/mytemplate.pt')
config.add_static_view('static', 'hermesweb:static', cache_max_age = 3600)
views.myDB = connect() # connect to my mongoDB
Minhastemplates/mytemplate.pt
se parece com isso
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:tal="http://xml.zope.org/namespaces/tal">
<head><title>My test title. . . </title></head>
<body>
<div>
<h2>Perform a search</h2>
<form method="GET" action="">
<div>
<input type="text" name="id"/>
</div>
<input type="submit" value="Submit"/>
</form>
<h2>Results</h2>
${results}
</div>
</body
<html>
Finalmente, meuviews.py
se parece com isso
myDB = "" # ref to the database is assigned on startup.
def my_view(request):
key = request.GET.get('id', None)
results = ""
if key:
db_res = myDB.call_some_find_function(key)
for data in db_res:
results = "%s <li> %s </li>" % (results, data)
results = "<ul> %s </ul>" % results
return {'results': results}
Quando insiro um termo no formulário e omy_view
função @ é chamada de banco de dados é consultada e os resultados corretos são retirados; no entanto, em vez de a string ser retornada se transformando em html na página da Web, ela é impressa como uma string na página da Web.
Suspeito que isso tenha algo a ver com o tipo de conteúdo? Mas ainda não entendi direito o Pyramid. Alguém pode explicar como fazer isso retornar um html que é interpretado pelo navegador como html, em vez de apenas uma string?
Extra pergunta - eu deveria estar usando oviews.py
para este tipo de chamada de banco de dados? Ainda estou confuso onde todo o objeto Root entra nele. Estou usando o MongoDB como back-end do banco de dados. . .