首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -子进程调用不能正常工作

Django -子进程调用不能正常工作
EN

Stack Overflow用户
提问于 2017-02-28 04:05:45
回答 1查看 944关注 0票数 0

我有以下意见:

代码语言:javascript
复制
class MiniView(generic.DetailView):
    model = Automata
    template_name = 'convert/mini.html'
    context_object_name = 'automata'
    command = "python MiniDFA.py"
    subprocess.call(command, shell=True)

class DFAView(generic.DetailView):
    model = Automata
    template_name = 'convert/dfa.html'
    context_object_name = 'automata'
    command = "python NFAtoDFA.py"
    subprocess.call(command, shell=True)

class TransitionCreate(UpdateView):
    model = Automata
    fields = []
    [...]
    command = "python make_graph.py"
    subprocess.call(command, shell=True)
    [...]

因为我希望每次调用视图时都执行命令,但出于某种原因,似乎只有最后一个命令正常工作,我不知道为什么。剧本本身似乎运转良好。

我还注意到,每次服务器运行时,脚本都会执行,也不确定为什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-28 05:08:40

这些是类,而不是函数。如果您希望在每个请求中发生一些事情,则需要重写类中的一个相关函数。例如:

代码语言:javascript
复制
class MiniView(generic.DetailView):
    ...

    def get(self, request):
        ...
        command = "python make_graph.py"
        subprocess.call(command, shell=True)
        ...
        return HttpResponse(...)

作为两个注意事项:

  • 在这里使用shell=True可能是个坏主意。如果可能的话,不要使用shell,在不需要复杂性的情况下,它会增加复杂性。
  • 如果shell脚本花费的时间太长,web客户端将超时。否则,用户将通过不断地单击“重新加载”来敲击服务器。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42500025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档