从 web2py 应用程序中的任何页面提取和存储查询参数
Extracting and storing a query parameter from any page in a web2py app
我希望用户能够在我的 web2py 应用程序中的任何 URL 上附加附属 ID 键和值作为查询字符串。然后我在会话中注册。他们应该在任何时候点击 link 进行注册:
- 我使用查询字符串中的会员 ID(如果有的话)
- 我在会话对象中使用会员 ID(如果有的话)
- 否则我从数据库中随机选择一个用户作为会员
我的问题是:我如何 "decorate" web2py 应用程序中的每个函数,以便它提取查询变量 affiliate
并将其分配给会话变量 affiliate
而无需手动编写此类每个控制器中每个功能的代码?
默认情况下,/models
文件夹顶层的模型文件会在每次请求时执行,因此只需将代码放在模型文件中即可:
if request.get_vars.affiliate:
session.affiliate = request.get_vars.affiliate
此外,使用上面的方法,上面的第 1 步就不需要了(即从查询字符串中提取附属 ID)——如果 "affiliate" 在查询字符串中,它将也被复制到同一请求中的会话。所以,只需从会话中读取 ID。
我希望用户能够在我的 web2py 应用程序中的任何 URL 上附加附属 ID 键和值作为查询字符串。然后我在会话中注册。他们应该在任何时候点击 link 进行注册:
- 我使用查询字符串中的会员 ID(如果有的话)
- 我在会话对象中使用会员 ID(如果有的话)
- 否则我从数据库中随机选择一个用户作为会员
我的问题是:我如何 "decorate" web2py 应用程序中的每个函数,以便它提取查询变量 affiliate
并将其分配给会话变量 affiliate
而无需手动编写此类每个控制器中每个功能的代码?
默认情况下,/models
文件夹顶层的模型文件会在每次请求时执行,因此只需将代码放在模型文件中即可:
if request.get_vars.affiliate:
session.affiliate = request.get_vars.affiliate
此外,使用上面的方法,上面的第 1 步就不需要了(即从查询字符串中提取附属 ID)——如果 "affiliate" 在查询字符串中,它将也被复制到同一请求中的会话。所以,只需从会话中读取 ID。