render jinja2 template without a Flask context

前端 未结 3 566
醉酒成梦
醉酒成梦 2021-01-02 03:59

I have a Flask application that calls flask.render_template without problems when it is invoked from a flask http request.

I need the same

相关标签:
3条回答
  • 2021-01-02 04:34

    What I use is this code:

    import jinja2
    template_values = {
      'value_name_in_html': value_name_in_python,   
    }
    
    template = JINJA_ENVIRONMENT.get_template("file_patch")
    self.response.write(template.render(template_values))
    
    0 讨论(0)
  • 2021-01-02 04:36

    If you want to completely bypass flask and use purely Jinja for rendering your template, you can do as such

    import jinja2
    
    def render_jinja_html(template_loc,file_name,**context):
    
        return jinja2.Environment(
            loader=jinja2.FileSystemLoader(template_loc+'/')
        ).get_template(file_name).render(context)
    

    And then you can call this function to render your html

    0 讨论(0)
  • 2021-01-02 04:53

    You need to render it in an app context. Import your app in your backend code and do the following.

    with app.app_context():
        data = render_template(path, **context)
    
    0 讨论(0)
提交回复
热议问题