无法识别django中html页面中的url变量。 Html页面是动态生成的

时间:2014-05-22 03:35:05

标签: python django web

这是views.py

    def home (request):
        now = datetime.datetime.now()
        t = get_template('index.html')
        html = t.render(Context({'current_date': now}))
        return HttpResponse(html)

    def run(request, id):
    table=""
    table + = "<table> <tr> <td> <a href= \" /run/{{ id }} \" > "+ linkname + "</a></td></tr></table>"
    return HttpResponse(table)

这是urls.py

    from mysite.views import run
    urlpatterns = [
        url(r'^home/$',home , ),
        url(r'^run/(?P<id>)$',run),
    }

在主页用户输入参数时,调用run方法,处理该参数,根据给定的参数动态生成表,并使用生成的表生成响应。该表包含一个链接,我试图传递参数{{id}}。但是,当我单击表中的链接时,它会出现以下错误: 当前网址(/ {{id}})与其中任何网址都不匹配。

我是django的新手,任何人都可以帮助我

1 个答案:

答案 0 :(得分:1)

它不是模板,这是python字符串。所以你需要使用字符串fromat

试试这种方式,

table + = "<table> <tr> <td> <a href= \" /run/{0} \" > "+ linkname + "</a></td></tr></table>".format(id)

另一种方式:

from django.template import Context, Template

def run(request, id):
   table=""
   table + = "<table> <tr> <td> <a href= \" /run/{{ id }} \" > "+ linkname + "</a></td></tr>   </table>"
   t = Template(table)
   c = Context({"id": id})
   return HttpResponse(t.render(c))

注意:我没有找到linkname变量。所以django会抛出一个错误。 Doc is here