# Let's Build A Web Server. Part 2.

DevFeed: [Let's Build A Web Server. Part 2.](<https://devfeed.tech/articles/let-s-build-a-web-server-part-2-33332.md>)

Original publisher: [Read original article](<https://ruslanspivak.com/lsbaws-part2/>)

Author: Ruslan Spivak

Published: 2015-04-06T11:00:00Z

Content type: tutorial

Language: en

Sources: [Ruslan Spivak](<https://devfeed.tech/sources/ruslan-spivak.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Web](<https://devfeed.tech/topics/web.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Django](<https://devfeed.tech/topics/django.md>), [Flask](<https://devfeed.tech/topics/flask.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [django](<https://devfeed.tech/tags/django.md>), [flask](<https://devfeed.tech/tags/flask.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [python](<https://devfeed.tech/tags/python.md>), [web](<https://devfeed.tech/tags/web.md>)

## AI overview

This tutorial explains how the Python Web Server Gateway Interface (WSGI) separates Web server and Web framework choices. It describes how WSGI enables combinations such as Django or Flask with Gunicorn, Nginx/uWSGI, or Waitress, and introduces a minimal WSGI server implementation.

## Source excerpt

Remember, in Part 1 I asked you a question: "How do you run a Django application, Flask application, and Pyramid application under your freshly minted Web server without making a single change to the server to accommodate all those different Web frameworks?" Read on to find out the answer. In ...