我有一个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')
答案 0 :(得分:0)
您尝试从服务器上发生的事件触发用户浏览器上的更改。仅使用Django是不可能的,因为Django的工作只是响应用户请求。
这是Django放置在请求链中的地方:
用户浏览器(点击href或ajax事件) - >您的服务器 - > Django的 - >用户浏览器(获取响应并显示给用户)
正如您所看到的,Django没有办法在没有用户调用的情况下触发用户端的任何事件。
使用异步任务可以实现您尝试做的事情:换句话说,您必须打开websocket并使用JavaScript将用户浏览器连接到它。
有很多框架可以做到这一点,Celery是与Django结合使用最多的。{/ p>
nodejs也被广泛使用,但将其与Django集成更复杂。