我的python自定义escape_html(s)函数不起作用(Udacity Web开发课程)

时间:2013-12-31 06:37:32

标签: python google-app-engine web

我正在尝试编写一个函数,以便html元素将保存在html中。我下面的自定义功能无法生成正确的输出。有谁知道为什么?

 def escape_html(s):
    for char in s:
        s.replace('>','%gt;')
        s.replace('<', '%lt;')
        s.replace('"','%quot;')
        s.replace('&', '%amp;')
    return s

谢谢大家!

2 个答案:

答案 0 :(得分:0)

在python中,字符串对象是引用,它指向的字符串无法更改,因此您应该将s指向另一个字符串,如下所示

PS:替换函数将替换整个字符串

def escape_html(s):
    s = s.replace('&','&amp;')
    s = s.replace('>','&gt;')
    s = s.replace('<','&lt;')
    s = s.replace('"','&quot;') 
    return s

答案 1 :(得分:0)

编写该函数的另一种方法是:

import cgi

def escape_html(s):
  return cgi.escape(s, quote = True)