非常感谢阅读:
我必须在 .py 文件中遵循调用默认控制器中的 web2py 函数的代码:
从 IDLE 运行的 .py 中的代码片段 -正确导入用户名和密码
payload = {'username': username, 'password': password}
r = requests.get('http://127.0.0.1:8000/webappfiletransfer/default/server_file_list_create.json/x/y/z', params=payload)
在 web2py 中,我有以下代码
1:接受用户名和密码
2:将它们与保存在 web2py 用户名和密码变量中进行比较
包含用户名和密码的文件是存储在 web2py 环境 中myappfilefolder/modules/parameters.py中的 parameters.py
编辑:似乎在完整的系统重新启动后,还需要将 parameters.py 放入 web2py/site-packages 中,正如我在几个 SO 答案中发现的那样,不管事实是
一旦将模块“mymodule.py”放入应用程序“modules/”文件夹中,就可以从 web2py 应用程序中的任何位置导入它(无需更改 sys.path):import mymodule
正如文件所述。显然我错过了一些东西
参数.py 是
用户名="testacc"
密码="1234"
Web2py 代码是:
from gluon.custom_import import track_changes
track_changes(True)
import parameters
usrname = request.vars['username']
passwd = request.vars['password']
if (usrname==parameters.username and passwd==parameters.password):
问题:虽然我正在使用
from gluon.custom_import import track_changes
track_changes(True)
据我了解,这会强制重新加载导入的模块,会发生以下行为:
在 IDLE 的第一次调用中,如果 parameters.py 中的参数错误,我有未经授权的消息要打印,因为参数错误。
使用正确的用户名/密码编辑文件parameters.py,我得到了正确的验证并从 web2py 成功返回。
再次编辑文件 parameters.py 并输入错误的凭据不会再次导致错误,并且 web2py 会正确返回,尽管提供了错误的凭据。无论凭据如何,所有后续调用都会返回成功结果。
有什么我想念的吗
from gluon.custom_import import track_changes
track_changes(True)
或者我应该考虑的其他事情,以便在不关闭第一个 web2py 的情况下再次触发错误的验证。