如何将参数发送到html文件我通过Klein(Flask)应用程序服务?

时间:2018-05-24 12:51:21

标签: python rest flask klein-mvc

我正在使用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 :(得分:1)

使用JinjaChameleon等模板语言。您可以返回字典并与模板上的字典进行交互。

Klein's docs describe how to use Twisted templates.

  

模板

     

您还可以通过返回轻松使用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)

this,它向您展示了您的要求。引用前几段:

  

HTML模板是转换模板文档的过程   (一个描述风格和结构,但本身并不包括   任何内容)到一些HTML输出,其中包括有关的信息   应用程序中的对象。有很多很多图书馆可供选择   这在Python中:仅举几例,jinja2,django模板和   清除。您可以轻松地使用这些库中的任何库   扭曲的Web应用程序,通过将它们作为WSGI应用程序运行   或者通过调用您首选的模板系统的API来生成它们   输出为字符串,然后将这些字符串写入Request.write。

     

在我们开始解释如何使用它之前,我想强调一下   如果你喜欢其他的话,不需要使用Twisted的模板系统   生成HTML的方法。如果它适合您的个人风格或您的个人风格使用它   应用程序,但随意使用其他东西。扭曲包括   模板供自己使用,因为twisted.web服务器需要   在各个地方生成HTML,我们不想添加另一个   对此的大依赖。扭曲与任何方式都不相容   其他系统,这与我们使用我们的事实无关   自己的。

答案 1 :(得分:0)

有关与Klein一起使用Jinja2模板,请参见this sample