【问题标题】:How to get the template path in the view django如何在视图django中获取模板路径
【发布时间】:2017-07-04 02:18:08
【问题描述】:

所以我试图在我的视图中获取模板路径。是否有这样做的动态方式,因为目前我正在硬编码路径。

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()

【问题讨论】:

标签: django django-views


【解决方案1】:

如果你加载模板......

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

你得到的是一个模板对象。

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

templatepath = mytemplate.origin.name

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

【讨论】:

  • from django.template import loader 是 loader 的来源
【解决方案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()

【讨论】:

    【解决方案3】:

    最好将模板存储在您的应用中。 例如,如果您的应用调用 polls,您的模板应该位于 polls/templates/polls/

    您可以在此处阅读更多信息: https://docs.djangoproject.com/en/1.11/intro/tutorial03/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多