如何将多词Python变量设为HTML文本输入框的完整默认值
问题根源
你当前代码的value属性没有对模板变量加引号包裹,当{{title_real}}是带空格的多词字符串时,渲染后的HTML代码会变成value = 第一个词 第二个词,浏览器会将第一个空格后的内容识别为独立的HTML属性,所以只会把第一个词识别为输入框的默认值。
而你直接把变量放到段落标签中时,不需要遵循属性值的包裹规则,HTML会直接渲染全部文本内容,所以不会出现截断问题。
修复方案
只需要给value属性的模板变量外层套上双引号即可,修改后代码如下:
<label>Title:</label> <input type = "text" id = "title" maxlength = "50" value = "{{title_real}}" name = "title" />
如果你的变量内容本身包含双引号,记得先在后端对特殊字符做HTML转义,避免引号提前闭合导致属性异常,绝大多数Python Web框架(比如Django、Flask)的模板引擎默认都会自动处理转义,不需要额外操作。
内容的提问来源于stack exchange,提问作者Alexandra Lazarenko
相关产品推荐
相关产品推荐

