在Django / HTML {Block}中使用Python编写

时间:2015-04-07 23:40:48

标签: python html django

我有一个评估用户输入的Python程序;例如,名字和姓氏。我想在未注册名称时显示HTML文件。如何在HTML中显示此类信息?我们的想法是"自动生成" HTML页面,以便我的views.py可以显示内容。

期望的输出:

以下名称未注册:

  • NAME_ONE
  • NAME_TWO
  • NAME_THREE

我知道Django有{%block%}标记或{{variable}}标记,但我不确定如何在Python中使用它或者它是否有效的语法。

示例Python程序

def checkDB ():
....
    if re.search (self.name, db):
        print ('Name exists.')
    else:
        print ('Cannot find names.')
        with open (templates/response.html', 'a') as html:
            html.write (self.name)

示例HTML文件

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Page Title</title>
</head>
<body>
    <h3>The following name(s) are not registered:</h3>
    <ul>
        <li>{% block content %}{% end block %}</li>
    </ul>
</body>
</html>

更新

  • Django Views将遍历表单并获取数据。它会 然后写入文本文件,然后调用我的main()程序。
  • Main()将遍历文本文件,然后将单个信息传递给类checkDB,它将处理数据。
  • checkDB将检查名称是否存在并写入HTML文件,以便Django Views可以向用户显示该错误。

希望这是有道理的。如果你有任何更好的方法,我会全力以赴。

1 个答案:

答案 0 :(得分:0)

我认为你可能正在寻找的是将模板渲染为字符串的方法。使用Django,您可以使用位于模板加载器中的render_to_string函数来完成此任务...

from django.template.loader import render_to_string

def checkDB (self):
    ....
    if re.search (self.name, db):
        print ('Name exists.')
    else:
        return render_to_string('templates/response.html', {'name': self.name})

但是,我不确定您是否需要做任何不同或特殊的事情才能在Django应用程序的上下文之外使用此功能。