สอบถามการใช้งาน Jinja ว่ามีการเรียกใช้ Template จาก python อย่างไรค่ะ

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: สอบถามการใช้งาน Jinja ว่ามีการเรียกใช้ Template จาก python อย่างไรค่ะ

Re: สอบถามการใช้งาน Jinja ว่ามีการเรียกใช้ Template จาก python อย่างไรค่ะ

โดย M013 » 09/01/2014 3:19 pm

ได้เเล้วค่ะ
ขอบคุณมากๆ ค่ะ :like:

Re: สอบถามการใช้งาน Jinja ว่ามีการเรียกใช้ Template จาก python อย่างไรค่ะ

โดย mindphp » 09/01/2014 3:10 pm

template_file_root เราต้องกำหนด เข้าไป หรือ ให้ os หาให้ก็ได้
แต่ต้อง import os เข้ามาใช้งานก่อน
เช่น

โค้ด: เลือกทั้งหมด

#-*- coding=utf-8 -*-
import os
import jinja2

FAVORITES = [ "ทดสอบ", "ทดสอบ2", "ทดสอบ3" ]
# 
templateVars = { "title" : "Mindphp.com ทดสอบ ส่ง Title",
                  "description" : "ทดสอบ ส่ง description.",
                  "favorites" : FAVORITES
                }
template_dir=os.path.join(os.path.dirname(__file__))
template_dir += '\\templates'
env = jinja2.Environment(loader=jinja2.FileSystemLoader(template_dir))
template = env.get_template('template_jinja.html')
print template.render(templateVars)

สอบถามการใช้งาน Jinja ว่ามีการเรียกใช้ Template จาก python อย่างไรค่ะ

โดย M013 » 08/01/2014 5:20 pm

อยากทราบวิธีการเรียกใช้ Template จาก Python ค่ะ
ใครพอรู้วิธีรบกวนด้วยนะค่ะ :-D

Code Python ค่ะ test_jinja.py

โค้ด: เลือกทั้งหมด

import jinja2
def ctest(stuff):
    return "yeah!"

template_env = jinja2.Environment (loader = jinja2.FileSystemLoader(template_file_root))
#custom filters
template_env.filters['ctest'] = ctest
Code templte ค่ะ templates/test_jinja_template.html

โค้ด: เลือกทั้งหมด

Working? {{ junk|ctest }}
Error
NameError: name 'template_file_root' is not defined

## อยากทราบจะทำการเรียกไฟล์ test_jinja_template.html อย่างไรค่ะ ?

ข้างบน