Используйте что-то вроде CherryPy или paste.httpserver. Вы можете использовать сервер wsgiref, и он обычно работает хорошо локально, но если вы используете Ajax, однопоточная природа wsgiref может привести к некоторым странным результатам, или если вы когда-либо сделаете подзапрос, вы получите условие гонки. Но в большинстве случаев это будет хорошо. может быть полезно, чтобы у вас не было встроенного многопоточного сервера (и CherryPy, и paste.httpserver являются многопоточными), в этом случае wsgiref будет полезен (все запросы будут выполняться из одного потока).
Обратите внимание, что если вы используете CherryPy или paste.httpserver, все запросы будут автоматически выполняться в подпотоках (эти пакеты создают поток для вас), и вы, вероятно, не сможете напрямую касаться кода GUI из своего веб-кода (так как Код GUI обычно не любит обрабатываться потоками). Для любого из них код сервера блокируется, поэтому вам нужно создать поток, чтобы запустить сервер. Twisted может работать в вашем обычном цикле обработки событий GUI, но, если это не важно, это добавляет много сложности.
Не используйте BaseHTTPServer или SimpleHTTPServer, они глупы и сложны, и во всех случаях, когда вы можете их использовать, вам следует вместо этого использовать wsgiref. В каждом отдельном случае, как и у wsgiref, есть вменяемый API (WSGI), а у этих серверов - глупые API.