我可以在没有框架的情况下使用jinja2吗?

时间:2017-10-31 20:16:39

标签: templates jinja2

对于jinja2,我是一个完整的新手。是否有必要构建一个框架来使用jinja2?理想情况下,我会使用html,css,js和jinja。我想一个python文件。

2 个答案:

答案 0 :(得分:0)

Jinja用于在python中进行模板化 - 如果你用js,html和css编写一个基本的web应用程序,你可以使用es6 template strings来模板化html中的js值/变量。如果你用js编写你的前端逻辑,这可能就是你要找的东西。

但是如果你对Python更熟悉,并且计划用Python编写你的应用程序,那么你可能想要使用像Flask这样的基本框架(然后是的,你会是使用jinja2)。

答案 1 :(得分:0)

您不需要使用jinja2的框架,只需在渲染模板时发出HTTP。

以下是没有框架的网页服务的一般模式: h/t for the Python 2 version

# import your jinja2 modules here
from http.server import BaseHTTPRequestHandler, HTTPServer

class MyHandler(BaseHTTPRequestHandler):
    def _set_headers(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()

    def do_GET(self): # handle GET request
        self._set_headers()
        self.wfile.write(# call Jinja2 renderer here)

def run(server_class=HTTPServer, handler_class=MyHandler, port=80):
    server_address = ('', port)
    httpd = server_class(server_address, handler_class)
    print("Starting server...")
    httpd.server_forever()

if __name__ == '__main__':
    run()

注意在此示例中,在请求处理程序的GET方法中调用Jinja2。