Serve a Directory via Python

By  on  

Sometimes I'm working with a test HTML file and some JavaScript but need to work off of a served space.  In that case, I sometimes need to swap out folders within MAMP Stack which leads to a maintenance nightmare.  Bleh.

I recently found out that you can serve up a directory using one Python command line directive:

# Serves the current directory at:  http://0.0.0.0:8000/
python -m SimpleHTTPServer

Excellent.  No more directory and MAMP Stack juggling.  Even better is that the command is easy to memorize so no need to constantly look it up.  Keep this in mind when you want to work on something without a big server install!

Recent Features

  • By
    7 Essential JavaScript Functions

    I remember the early days of JavaScript where you needed a simple function for just about everything because the browser vendors implemented features differently, and not just edge features, basic features, like addEventListener and attachEvent.  Times have changed but there are still a few functions each developer should...

  • By
    5 Ways that CSS and JavaScript Interact That You May Not Know About

    CSS and JavaScript:  the lines seemingly get blurred by each browser release.  They have always done a very different job but in the end they are both front-end technologies so they need do need to work closely.  We have our .js files and our .css, but...

Incredible Demos

Discussion

  1. Hristo Chakarov

    https://www.npmjs.com/package/http-server

    http-server

    That’s even easier.

    • Python comes preinstalled on number of OS’s though.

      Python 3 has a different syntax too.

      I think it’s

      python -m http.server
  2. Except this only works under Python 2. The Python 3 command is slightly different.

    python -m http.server
  3. Ever seen Fenix Web Server? I’m totally bias (I’m the author), but I think it works well :-) Has a GUI and a CLI, persistent servers, and an SSH tunneling tool for securely and temporarily sharing with others.

  4. You can also do this very easily with php:

    cd ~/somewhere
    php -S localhost:8888

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!