Saturday, 21 July 2018

django rest single thread / blocking view

Is it possible to block a code in view from execution by all users accessing the view while it is being executed by a single user? Kind of single-thread view.

I need it because i generate the python executable with pyinstaller in this view and passing a username into the executable through the config file.

For example:

class CliConfig(APIView):

    def get(self, request, format=None):
        try:
            config['DEFAULT']['username'] = request.user

            #make a build with pyinstaller
            bin_file = open(*generated filepath *, 'rb')
            response = Response(FileWrapper(bin_file), content_type='application/octet-stream')
            response['Content-Disposition'] = 'attachment; filename="%s"' % '*filename*'
            return response
        finally:
            config['DEFAULT']['username'] = ''

So, basically what i want is to generate a python executable which will have a unique username it it's settings, in django rest framwork APIView. I don't see other approach except passing the username through the settings file. If there is a way - would appreciate an advise.

python 3.6.5, djangorestframework==3.8.2, pyinstaller==3.3.1



from django rest single thread / blocking view

No comments:

Post a Comment