如何在Django视图中获取模板路径

3

我正在尝试在视图中获取模板路径。是否有一种动态的方法可以做到这一点,因为目前我正在硬编码路径。

html = 'C:/Users/user/Desktop/project/src/templates/project.html'

模板路径

TEMPLATES = [
   'DIRS': [os.path.join(BASE_DIR, "templates")],
]

查看

html = 'C:/Users/user/Desktop/project/src/templates/project.html'
open_html = open(html, 'r')
soup =  BeautifulSoup(open_html, "html5lib")
image = soup.find('img', {'name':'image_url'})
img_url = image.get('src')
open_html.close()

试一下这个:https://dev59.com/X3A75IYBdhLWcg3w0cjx - badiya
1
Django的美妙之处在于它可以根据文件夹结构自动发现您的模板文件 - app/templates/app/project.html - joshlsullivan
3个回答

4

如果您加载模板...

mytemplate = loader.get_template('myapp/templatename.html')

你会得到一个模板对象。

这个对象的成员之一是 origin 属性,它本身有一个名为“name”的属性。

templatepath = mytemplate.origin.name

这是模板加载器发现的模板文件的完整路径。

from django.template import loaderloader 的来源。 - run_the_race
另一个评论是,这个过程相当慢,因为它不仅要解析模板,还要找到它。 - run_the_race

2
尝试这个。从您的项目设置文件中获取模板位置。
from your_project_name.settings import BASE_DIR

path = os.path.join(BASE_DIR+'templates/', 'project.html')
open_html = open(path, 'r')
soup =  BeautifulSoup(open_html, "html5lib")
image = soup.find('img', {'name':'image_url'})
img_url = image.get('src')
open_html.close()

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接