50068
Django2.0でアプリケーションを作成中です。  
ブラウザで`localhost:8000/done`  
というURLにアクセスしたら、`done.py`というpythonプログラムを実行するようにしたいです。  
どのようにしたらよいでしょうか？

views.py

```

    from django.shortcuts import render
    from . import done
    
    def done(request):
        print("viewのdoneが実行されています。")
        #done.Done_def()?ここに何を書いたらいいかがわからない
    return render(request, 'done.html')
    
```

done.py

```

    def Done_def():
        print("done.pyですよ")
    
```

urls.py

```

    path('done', views.done, name='done'),
    
```

`localhost:8000/done`にアクセスすると、  
コンソールには『viewのdoneが実行されています。』と出るようにはなります。  
なのでviewにアクセスするところまでできているようですが、そこから『done.pyですよ』まで表示させたいです。  
よろしくお願いいたします。
CC BY-SA 4.0
2018-11-07T07:09:44.853
50048
2018-11-07T21:41:29.563
30883
question
python python3 django
Django2.0で、ビューにアクセスしたら用意しておいたプログラム.pyを実行したい。
そもそもの目的次第ですが、subprocessモジュールを使えば、いいと思います。

例)

```

    p = subprocess.Popen([sys.executable, '/path/to/done.py'],
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT)
    stdout_data, stderr_data = p.communicate()
    print(stdout_data)
    
```

詳しい使い方は、[ここ](https://docs.python.jp/3/library/subprocess.html)を確認して下さい。
CC BY-SA 4.0
2018-11-07T21:36:10.660
50068
2018-11-07T21:41:29.563
2018-11-07T21:41:29.563
21092
21092
50048
answer