В пирамиде, как я могу вернуть необработанный HTML из представления?

Я действительно плохо знаком с Pyramid (и довольно плохо знаком с веб-фреймворками в целом).

Я пытаюсь добраться до стадии, когда я могу вернуть необработанный HTML из представления, чтобы я мог разметить данные, возвращенные из моего хранилища mongoDB.

мой__init__.py в моей пирамиде проект стандартен:

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

мойtemplates/mytemplate.pt выглядит так:

<!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>

Наконец, мойviews.py выглядит так:

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}

Когда я вставляю термин в форму иmy_view вызывается функция, запрашивается база данных и извлекаются правильные результаты, однако вместо того, чтобы возвращаемая строка превращалась в html на веб-странице, она вместо этого печатается на веб-странице в виде строки.

Я подозреваю, что это как-то связано с типом контента? Но я пока не очень хорошо понимаю Пирамиду. Может кто-нибудь объяснить, как заставить это возвращать HTML, который интерпретируется браузером как HTML, а не просто строка?

Дополнительный вопрос - я должен даже использоватьviews.py для этого типа вызова базы данных? Я все еще запутался, когда весь объект Root входит в него. Я использую MongoDB в качестве базы данных. , ,

Ответы на вопрос(2)

Ваш ответ на вопрос