【发布时间】:2017-10-31 20:16:38
【问题描述】:
在 jinja2 方面,我完全是新手。是否需要构建框架才能使用jinja2?理想情况下,我会使用 html、css、js 和 jinja。我想是一个python文件。
【问题讨论】:
在 jinja2 方面,我完全是新手。是否需要构建框架才能使用jinja2?理想情况下,我会使用 html、css、js 和 jinja。我想是一个python文件。
【问题讨论】:
Jinja 旨在用于在 python 中进行模板化 - 如果您正在使用 js、html 和 css 编写基本的 Web 应用程序,您可以使用 es6 template strings 模板化 html 中的 js 值/变量。如果您正在使用 js 编写前端逻辑,那么这可能就是您正在寻找的。
但是,如果您更熟悉 Python,并打算改用 Python 编写应用程序,那么您可能希望使用像 Flask 这样的基本框架(然后是的,您将使用 jinja2 )。
【讨论】:
您不需要使用带有 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.serve_forever()
if __name__ == '__main__':
run()
注意在本例中调用 Jinja2 的位置,在请求处理程序的 GET 方法中。
【讨论】: