python - 多语言网站中的 GET 搜索

标签 python web2py

我在我的 web2py 应用程序中包含了一个搜索表单,格式如下:

myapp/controller/search?query=myquery

但是,出于安全原因,web2py 会自动用下划线替换空格和非字母数字字符,这对于纯英文网站来说是可以的,但是 使用重音符号的语言的障碍。例如,搜索“áéíóú”会返回五个下划线。

可以通过在搜索表单中使用 POST 而不是 GET 来解决此问题,但用户将无法为结果添加书签。

有什么办法可以解决这个问题吗?

提前致谢。

最佳答案

这是我过去使用过的一个想法:

  1. 使用 post 提交查询
  2. 生成唯一的字符串(例如 youtube: https://www.youtube.com/watch?v=jX3DuS2Ak3g )
  3. 将查询与该字符串相关联,并作为键/值对存储在 session /应用状态/数据库中(取决于您希望其存在的时间)
  4. 将用户重定向至该位置

如果您不想占用额外的内存/空间,因为它们在某些情况下会增长很多,您可以将步骤 2-3 替换为将字符串加密为随后可以解密的内容。您可以在中间件类中执行此操作,以便它对应用程序的逻辑透明。

关于python - 多语言网站中的 GET 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37151430/

相关文章:

python - 使用 Python 从文本文件中解析多个 json 对象

python - Linux中调用系统命令 'history'

python - any() 的性能

Python:Web2py 错误处理

postgresql - 将 Web2py 部署到 Heroku(Psycopg2 错误)

google-app-engine - web2py 类似于谷歌应用引擎

Web2py 多语言

python - 如何在 web2py 的 post 请求中拥有一系列单选按钮

python - 操作系统错误: [Errno 10048] error while attempting to bind on address

python - PyCharm 的优化导入也可以按字母顺序排列吗?