无法访问 web2py 中的私人文件夹
Trouble accessing private folder in web2py
我的 web2py 应用程序设计为使用存储在我的 'private' 文件夹中的文件中的 json 密钥。但是,我在访问此文件时遇到问题,因为 request.folder returns None.
这段代码对我不起作用:
import os
from gluon.globals import Request
def my_function():
request = Request()
json_file = open(os.path.join('request.folder', 'private', 'quote_generator.json'))
对于将处理 HTTP 请求的 web2py 应用程序中的代码,您不应创建自己的 Request
对象——web2py 执行环境已经包含一个 Request
对象并使用许多属性,包括 request.folder
(当您从头开始创建新的 Request
对象时,它没有 folder
属性)。
如果模块中的函数需要访问 request
对象,您应该将其作为参数显式传递或使用描述的方法 here:
from gluon import current
def my_function():
json_file = open(os.path.join(current.request.folder,
'private', 'quote_generator.json'))
或者,将 request
作为参数传递:
def my_function(request):
json_file = open(os.path.join(request.folder,
'private', 'quote_generator.json'))
在这种情况下,当从 web2py 模型、控制器或视图调用上述函数时,您必须传入 request
对象。
最后,请注意,当您调用 os.path.join
时,您不会将 request.folder
放在引号中,因为这会导致将字符串文字 "request.folder" 添加到路径中。
我的 web2py 应用程序设计为使用存储在我的 'private' 文件夹中的文件中的 json 密钥。但是,我在访问此文件时遇到问题,因为 request.folder returns None.
这段代码对我不起作用:
import os
from gluon.globals import Request
def my_function():
request = Request()
json_file = open(os.path.join('request.folder', 'private', 'quote_generator.json'))
对于将处理 HTTP 请求的 web2py 应用程序中的代码,您不应创建自己的 Request
对象——web2py 执行环境已经包含一个 Request
对象并使用许多属性,包括 request.folder
(当您从头开始创建新的 Request
对象时,它没有 folder
属性)。
如果模块中的函数需要访问 request
对象,您应该将其作为参数显式传递或使用描述的方法 here:
from gluon import current
def my_function():
json_file = open(os.path.join(current.request.folder,
'private', 'quote_generator.json'))
或者,将 request
作为参数传递:
def my_function(request):
json_file = open(os.path.join(request.folder,
'private', 'quote_generator.json'))
在这种情况下,当从 web2py 模型、控制器或视图调用上述函数时,您必须传入 request
对象。
最后,请注意,当您调用 os.path.join
时,您不会将 request.folder
放在引号中,因为这会导致将字符串文字 "request.folder" 添加到路径中。