使用web.py表单显示PostgreSQL数据库中的密码

2024-09-30 20:38:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在玩PostgreSQL和web.py,我注意到如果我在数据库中有用户名和密码,并且密码可能包含string.printable成员的特殊字符,那么当我想通过web.py模板将查询到的密码打印到浏览器时,字符转义出错,密码不想显示。相反,浏览器提供下载包含密码的文本文件(没有文件扩展名)

在我的Python文件中:

class login:
    ...
    def POST(self):
        ...
        cursor.execute("SELECT password FROM tbl WHERE username = %s", (f['username'].value, ))
        realpassword = cursor.fetchone()
        realpassword = realpassword[0]
        ...
        return realpassword

密码正确显示在下载的文本文件中,但如何在网页上以文本形式显示密码


Tags: 文件pyweb数据库密码stringpostgresqlusername
1条回答
网友
1楼 · 发布于 2024-09-30 20:38:56

Pythonstring.printable包括垂直制表符\x0b和表单提要\x0c,这两种格式对浏览器来说都不是朋友。浏览器假设他们正在接收一个文件并提供下载

(string.printable与ASCII不同。)

不是返回原始的realpassword,而是返回repr(realpassword)。内置repr()返回“包含可打印表示的字符串…”,转义控制字符

>>> import string
>>> print string.printable[-20:]
=>?@[\]^_`{|}~  



>>> print repr(string.printable[-20:])
'=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

相关问题 更多 >