Runserver Django Apps for Lazy Developer (with Batch Script)
If your computer is connected to an access point through wifi. You can use your computer as a server that can be accessed by other devices connected to the same network. In Django you can run
python manage.py runserver 192.168.1.1:8000 (assuming 192.168.1.1 is your computer ip address that is used as the server).
Since I like testing my apps on my phone and tablet simultaneously, it’s quite convenient to
runserver it like that. But, doing it over and over is becoming boring and as a programmer we like to automate or simplify our work, right? So then I came to this solution — one click to run the server. Here is how I do it.
The goal is to create a batch script to runserver our django app with only a double click. And, what we need are:
- IP address, we need to get our computer server’s IP address with batch script. We are not gonna use 127.0.0.1 since we need to access the app from different devices.
- The location of our app (the file path), we need the app location so that we don’t run a wrong app, right?
- The location of our virtual environment and how to activate it. I usually name the folder
venvand put it in the root of the app folder.
- Runserver command, which is
python manage.py runserver ip_address:80. We use port 80 because I will be too lazy to write the port on browser (lol).
So with those goals in mind, here is the full script:
@ECHO OFF, is to disable the echoing so that it will not display the content of the batch script.
The purpose of the command in this line is to get IP address from ipconfig command and then set it to a variable
FOR /F “delims=: tokens=2” %%a in (‘ipconfig ^| find “IPv4”’) do set _IPAddress=%%a
There are actually three commands in this line.
cd /d %~dp0 & “venv\Scripts\activate” & python manage.py runserver %_IPAddress%:80
cd /d %~dp0, is to direct us to where the batch file is located, which is the root of our app.
“venv\Scripts\activate”, is to activate the virtual environment. Since we’re already directed to the root of our app, we don’t need to write the full path.
- after the virtual environment activated, we run the server with
python manage.py runserver %_IPAddress%:80. While
%_IPAddress%is the variable where we put our IP address.
The last line
cmd /k is to prevent the command prompt window from closing.