我正在使用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)
答案 0 :(得分:1)
使用Jinja或Chameleon等模板语言。您可以返回字典并与模板上的字典进行交互。
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。