1

非常感谢阅读:

我必须在 .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 的情况下再次触发错误的验证。

4

0 回答 0