我在我的 web2py 应用程序中包含了一个搜索表单,格式如下:
myapp/controller/search?query=myquery
但是,出于安全原因,web2py 会自动用下划线替换空格和非字母数字字符,这对于纯英文网站来说是可以的,但是 使用重音符号的语言的障碍。例如,搜索“áéíóú”会返回五个下划线。
可以通过在搜索表单中使用 POST 而不是 GET 来解决此问题,但用户将无法为结果添加书签。
有什么办法可以解决这个问题吗?
提前致谢。
最佳答案
这是我过去使用过的一个想法:
- 使用 post 提交查询
- 生成唯一的字符串(例如 youtube: https://www.youtube.com/watch?v=jX3DuS2Ak3g )
- 将查询与该字符串相关联,并作为键/值对存储在 session /应用状态/数据库中(取决于您希望其存在的时间)
- 将用户重定向至该位置
如果您不想占用额外的内存/空间,因为它们在某些情况下会增长很多,您可以将步骤 2-3 替换为将字符串加密为随后可以解密的内容。您可以在中间件类中执行此操作,以便它对应用程序的逻辑透明。
关于python - 多语言网站中的 GET 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37151430/