吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1552|回复: 8
收起左侧

[求助] Python getpass 问题请教

[复制链接]
sjaben 发表于 2022-3-3 13:38
各位大佬,在执行问题时候,出现Warning: Password input may be echoed.,如何破解
#APP程序用来处理控制台的输入和输出,因为控制台的操作询问是轮询执行的,所以我们需要在APP使用死循环
from colorama import Fore, Style
from getpass import getpass  #遮挡密码
from service.user_service import UserService
import os  #系统命令
import sys
import time

__user_service=UserService()


while True:  #死循环
    os.system("cls")   # cls清空内容
    print(Fore.LIGHTBLUE_EX, "\n\t=========")
    print(Fore.LIGHTBLUE_EX, "\n\t欢迎使用新闻管理系统")
    print(Fore.LIGHTBLUE_EX, "\n\t=========")
    print(Fore.LIGHTWHITE_EX,"\n\t1.登录系统")
    print(Fore.LIGHTWHITE_EX,"\n\t2.退出系统")
    print(Style.RESET_ALL)  #重置字体颜色
    opt=input("\n\t输入操作编号:")
    #对输入编号进行判断
    if opt=="1":
        username=input("\n\t用户名:")
        password=getpass("\n\t密码:")  ##getpass是对密码进行遮挡的库
        result=__user_service.login(username,password)
        #登录成功
        if result==True:
            #查询角色是否存在
            role=__user_service.search_user_role(username)
            os.system("cls")  # 确定角色后,清空屏幕,进行下一步
            while True:  #根据角色进行输出下一步
                if role=="新闻编辑":
                    print("test")
                elif role=="管理员":
                    print(Fore.LIGHTGREEN_EX, "\n\t1.新闻管理")
                    print(Fore.LIGHTGREEN_EX, "\n\t2.用户管理")
                    print(Fore.LIGHTRED_EX, "\n\tback.退出登录")
                    print(Fore.LIGHTRED_EX, "\n\texit.退出登录")
                    print(Style.RESET_ALL)# 重置颜色
                    opt = input("\n\t输入操作编号:")
                    if opt=="back":
                        break #结束当前循环,返回上一层
                    elif opt=="exit":
                        sys.exit(0)# 退出系统
        else:
            print("\n\t登录失败(3秒自动返回)")
            time.sleep(3)

    elif opt=="2":
        sys.exit(0)  #结束当前的循环(最外层),0是代表安全退出

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| sjaben 发表于 2022-3-3 13:41
自己顶一下,有大佬解惑吗
Ting丶wep 发表于 2022-3-3 14:57
getpass在pycharm中不能用,试一下用python终端运行
ufo0033 发表于 2022-3-3 15:12
zach14c 发表于 2022-3-3 16:06
If echo free input is unavailable getpass() falls back to printing a warning message to stream and reading from sys.stdin and issuing a GetPassWarning.

Note

If you call getpass from within IDLE, the input may be done in the terminal you launched IDLE from rather than the idle window itself.

~~ https://docs.python.org/3/library/getpass.html

IDLE (Python),Python集成开发环境
此类整合环境会有此状况,请用命令行模式
 楼主| sjaben 发表于 2022-3-3 17:28
zach14c 发表于 2022-3-3 16:06
~~ https://docs.python.org/3/library/getpass.html

IDLE (Python),Python集成开发环境

我直接在pycharm运行的,
忘了带钱 发表于 2022-3-3 18:16
用IDLE运行,在IDLE窗口中输入就会提示这样,官方也有说明:
https://docs.python.org/3.1/library/getpass.html

Note If you call getpass from within IDLE, the input may be done in the terminal you launched IDLE from rather than the idle window itself.
zach14c 发表于 2022-3-4 16:03
sjaben 发表于 2022-3-3 17:28
我直接在pycharm运行的,

在Run/Debug Configurations下,有个Execution,Emulate terminal in output console勾选执行就可以抑制显示了
zach14c 发表于 2022-3-4 16:13
pycharm:
在Run/Debug Configurations下,有个Execution,Emulate terminal in output console勾选执行就可以抑制显示了

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表