Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中引发事件和对象持久性_Python_Django - Fatal编程技术网

Python 在Django中引发事件和对象持久性

Python 在Django中引发事件和对象持久性,python,django,Python,Django,我有一个棘手的Django问题,我在开发它时没有想到。我的Django应用程序允许用户注册并存储其站点的登录凭据。Django应用程序基本上允许用户搜索另一个站点(通过从中删除内容),并将结果返回给用户。对于每个查询,它都会对其他站点执行两个查询。这似乎很好,但有时,另一个网站会给我一个验证码。我已经编写了获取验证码图像的代码,我需要将其返回给用户,以便用户可以输入,但我不知道如何输入 Django应用程序中的搜索请求(查询、用户名和密码)被传递到一个视图,该视图反过来调用执行抓取/搜索的后端。

我有一个棘手的Django问题,我在开发它时没有想到。我的Django应用程序允许用户注册并存储其站点的登录凭据。Django应用程序基本上允许用户搜索另一个站点(通过从中删除内容),并将结果返回给用户。对于每个查询,它都会对其他站点执行两个查询。这似乎很好,但有时,另一个网站会给我一个验证码。我已经编写了获取验证码图像的代码,我需要将其返回给用户,以便用户可以输入,但我不知道如何输入

Django应用程序中的搜索请求(查询、用户名和密码)被传递到一个视图,该视图反过来调用执行抓取/搜索的后端。当检测到验证码时,我希望在这些行上引发客户端事件或其他事件,并向用户显示验证码,然后等待用户的输入,以便我可以继续搜索。我需要在调用之间保留后端对象。我尝试过对其进行pickle处理,但不起作用,因为我得到了
无法对“lock”对象进行pickle处理的错误。但我不知道该怎么做。有什么帮助/想法吗


非常感谢。

还有一点需要记住:您需要与远程站点保持浏览器会话,以便该站点知道您要解决的验证码。许多网络客户端允许您存储cookie,我建议您在为其进行屏幕抓取的用户的Django会话中转储cookie。然后在您提交验证码时将其重新加载

以下是我如何看待事件的全面转变:

  • 用户位置搜索请求
  • 查询远程站点
  • 如果没有验证码,
    GOTO#10
  • 在本地会话中保存远程cookie
  • 下载图像验证码(可能也下载到会话?)
  • 向用户提供验证码和表单
  • 用户提交验证码
  • 您从#4加载Cookie并以POST形式提交表单
  • GOTO#3
  • 处理页面外的数据,呈现给用户,自己击掌

  • request.session['name']=variable
    将存储它 那么

    variable=request.session['name']
    将检索它。
    请记住,它不是一个数据库,只是一个简单的会话存储,不应该依赖于任何关键的内容

    您是否考虑过询问其他网站是否可以删除其内容?他们甚至检测到报废,并试图通过验证码来缓解。也许,如果你有很好的理由来解释为什么你需要这些数据,他们会给你这些数据,而不必费劲地把它们扔掉。嗨,奥利,你能给我指一个链接,解释如何在会话中存储和检索数据吗?这说明了如何将cookielib与urllib2一起使用——不过它们会将其存储到文件中。如果一次只有一个用户在进行此操作,这很好,但我建议您在会话中放弃它,这样您就可以同时有尽可能多的用户在进行此操作。课程很简单: