在新窗口中渲染Django视图

时间:2015-12-01 19:01:27

标签: python django

我有一个Django视图,当我从views.py之外的python脚本调用它时,我希望在新窗口中呈现。我的问题是1.我可以在项目的子目录中使用来自python脚本的Django视图,该子目录位于视图所在的应用程序之外(查看位置:MyProject / Myapp / views.py和python脚本位置:MyProject / ProcessingCode / myscript.py)? 2.如果可以,我如何在新窗口中渲染视图?

我希望在新窗口中呈现的Django视图:

def Error_Popup_Page(request,message):

  context = {'message':message}
  return render(request,'InterfaceApp/Error_Notification.html',context)

如何使用:

def SomeOtherPythonFunction():
  try:
    #data processing code
  except Exception as e:
    return Error_Popup_Page(request,'error message')

1 个答案:

答案 0 :(得分:0)

您尝试从服务器上发生的事件触发用户浏览器上的更改。仅使用Django是不可能的,因为Django的工作只是响应用户请求。

这是Django放置在请求链中的地方:

  

用户浏览器(点击href或ajax事件) - >您的服务器 - > Django的    - >用户浏览器(获取响应并显示给用户)

正如您所看到的,Django没有办法在没有用户调用的情况下触发用户端的任何事件。

使用异步任务可以实现您尝试做的事情:换句话说,您必须打开websocket并使用JavaScript将用户浏览器连接到它。

有很多框架可以做到这一点,Celery是与Django结合使用最多的。{/ p>

nodejs也被广泛使用,但将其与Django集成更复杂。