我正在努力使LISTEN channelname
可配置。
queue_listen_name = config["database"]["listen_channel"]
cur.execute("LISTEN %s;", (queue_listen_name,))
然而,这段代码失败了,因为postgresql在收听频道时不喜欢单引号:
psycopg2.ProgrammingError: syntax error at or near "'channel_name'"
LINE 1: LISTEN 'channel_name';
使用双引号(在psql上测试)时它确实有效。
我该怎么办?我不想自己构建一个字符串,然后在该字符串上使用cur.execute()
,因为有明显的SQL注入原因。
所以这不是我想做的事情:
queue_listen_name = "LISTEN {};".format(config["database"]["listen_channel"])
cur.execute(queue_listen_name)
答案 0 :(得分:1)
从手册中获取,这些都应该有效并被描述为"安全":
.second-child
{
max-height: 80%;
overflow: auto;
}
或更好
.parent
{
height: 200px;
width: 100px;
background-color: #F00;
padding: 10px;
}
.second-child
{
max-height: 80%;
overflow: auto;
}
您可以在此处详细了解格式:http://initd.org/psycopg/docs/sql.html