Как отправить параметры в HTML-файл, который я обслуживаю, через приложение Klein (Flask)? - PullRequest
0 голосов
/ 24 мая 2018

Я использую Klein для разработки конечных точек REST.(аналог Python Flask) Меня интересует, как передать параметры в файл HTML, который я хочу обслуживать, если это вообще возможно.

from twisted.web.static import File
from klein import Klein
app = Klein()

@app.route('/', branch=True)
def pg_index(request):
    return File('./')

app.run("localhost", 8080)

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

См. этот образец для использования шаблонов Jinja2 с Klein.

0 голосов
/ 24 мая 2018

Используйте язык шаблонов, такой как Джинджа или Хамелеон .Вы можете вернуть словарь и взаимодействовать со словарем в шаблоне.

Документы Кляйна описывают, как использовать витые шаблоны.

Шаблоны

Вы также можете легко использовать twisted.web.templates, возвращая все, что реализует twisted.web.template.IRenderable, например twisted.web.template.Element, в этом случае шаблон будет отображаться, а результат будет отправлен кактело ответа.

from twisted.web.template import Element, XMLString, renderer
from klein import run, route

class HelloElement(Element):
    loader = XMLString((
        '<h1 '
        'xmlns:t="http://twistedmatrix.com/ns/twisted.web.template/0.1"'
        '>Hello, <span t:render="name"></span>!</h1>'))

    def __init__(self, name):
        self._name = name

    @renderer
    def name(self, request, tag):
        return self._name

@route('/hello/<string:name>')
def home(request, name='world'):
    return HelloElement(name)

run("localhost", 8080)

и это , которое показывает именно то, что вы просите.Процитируем первые несколько абзацев:

Шаблонирование HTML - это процесс преобразования шаблонного документа (который описывает стиль и структуру, но сам по себе не содержит никакого содержимого) в некоторый вывод HTML, содержащий информацию ообъекты в вашем приложении.Для этого в Python существует множество библиотек: несколько имен, шаблоны jinja2, django и clearsilver.Вы можете легко использовать любую из этих библиотек в своем веб-приложении Twisted, запустив их как приложения WSGI или вызвав API предпочитаемой системы шаблонов для вывода их в виде строк, а затем записав эти строки в Request.write.

Прежде чем мы начнем объяснять, как его использовать, я хотел бы подчеркнуть, что вам не нужно использовать систему шаблонов Twisted, если вы предпочитаете другой способ генерации HTML.Используйте его, если это соответствует вашему личному стилю или вашему приложению, но не стесняйтесь использовать другие вещи.В Twisted есть шаблоны для собственного использования, поскольку серверу twisted.web необходимо создавать HTML в разных местах, и мы не хотели добавлять еще одну большую зависимость для этого.Twisted ни в коем случае не несовместим с другими системами, так что это никак не связано с тем, что мы используем свои собственные.

...