Confusion on async file upload in python
Asynchronous behavior applies to either side independently. Either side can take advantage of the capability to take care of several tasks as they become ready rather than blocking on a single task and doing nothing in the meantime. For example, servers do things asynchronously (or at least they should) while clients usually don't need to (though there can be benefits if they do and modern programming practices encourage that they do).
So I want to implement async file upload for a website. It uses python and javascript for frontend.  After googling, there are a few great posts on them.  However, the posts use different methods and I don't understand which one is the right one.
Method 1:
   Use ajax post to the backend. 
Comment: does it make a difference? I thought async has to be in the backend not the front? So when the backend is writing files to disk, it will still be single threaded.
Method 2:
   Use celery or asyncio to upload file in python.
Method 3:
   use background thread to upload file in python.
Any advice would be thankful.