Running Django Applications in iPad

Jung-Hyun Nam
Mar 15 · 5 min read

Have you ever wondered does iPad or iPhone supports a terminal for its environment? Well, yes. As you know, the free and open-source applications named iSH does.

iSH does not require any hacks or jailbreaks. iSH performs emulation in itself, and some interop features also supported including socket listening, file sharing, etc. So you can rely on it, as the battery performance as allow.

Recently, I found that this approach works quite well. So I decided to share this tip. I will introduce you to how to run your Django application in iPadOS step by step.

Before You Getting Started

Please check that you can follow this article now. It would be best if you thought those considerations before you getting started.

First, the iSH is still in development. You may not be able to achieve all your shell experiences or some critical tools for your works — this article written for ideation and demonstration purposes.

Second, be aware of your internet connection! This tutorial causes heavy traffic usage. Ensure that you are using a non-metered, free, unlimited Wi-Fi connection. If not, you may be overwhelmed by the invoice!

Lastly, be aware of your remain battery. This tutorial causes heavy power consumption.

Also, I recommend that you would better use the hardware keyboard instead of the built-in keyboard. It makes your workspace larger. ;-)

Looks good? Then let’s get started!

Enroll Test Flight Channel

As before I mentioned, iSH is under development stage, and this app is not available on the Apple App Store at the moment of writing. Before getting started, please install the Test Flight app first. Then go to web site and enroll in the test flight channel.

After you enrolled in the test program, download the iSH app, and start it.

Update, Upgrade Existing Packages

iSH contains the Alpine Linux distribution. So you can manage your distribution packages by the APK tool.

Let’s update the latest package information with the below command.

Then, upgrade some pre-installed packages for security purposes and fix bugs.

Install Python 3, Virtual Environment and Django

Let’s install the Python 3 interpreter.

After installation, check the Python installed correctly.

Then, upgrade the PIP (Python Package Manager) to install additional packages.

For using Django, you need to install the bash shell and the virtualenv Python package.

Are all things getting done? Then let’s create a virtual environment in your home directory. The virtual environment’s name is helloworld.

Lastly, activate the virtual environment, so ensuring install Django and related dependencies only in its virtual environment, not the global scope. After activation, prompt will indicate the current virtual environment name.

Create, Initialize & Run Django Web Site

Let’s install the Django framework in the virtual environment.

After installation, you can use the Django-admin tool. With this tool, you can scaffold the new instance of the web site and local SQLite database (which also supported in the iSH environment.)

Current states of the local SQLite DB not synced with project database definition. You should use the migration script.

Also, it would be best to protect and secure applications, and you need to create a default super administrator account before starting a web site. Run the below command and follow the dialog.

You can now run the Django server. Please run the below command to fire up. With — insecure switch, Django will allow any incoming connection to the server.

You can find the Django server runs successfully on your iPad. :-D

Using Multitasking Feature

Essentially, you can run this tutorial on your iPhone, not only the iPad. But both environment does not support background processes. So if you run the Django server, then activate another application such as Safari or Google Chrome on top of the iSH, the iSH suspends soon. On the iPhone, because of this, your experiences of debugging the Django application not good.

I recommend that you would better use this approach on your iPad device because iPadOS supports multitasking with the split-view.

For those who are not familiar with the split-view, please look out this help document on the Apple web site. iSH already supports the split-view feature on iPad OS.

Then let’s make a split-view. On the left side, you can place your favorite web browser, and on the right side, you can place the activate the iSH app, which runs the Django server.

You can access the Django server through the address http://localhost:8000.

Voila! Also, you can access the admin page through http://localhost:8000/admin. Provide your credential what before you specified earlier step, then you will get a neat and familiar admin page!

The console shows logs that you correctly connected with the local server on the iPad.

Some More Tips

If you consider using this environment in earnest, you can do more things like below.

  • Install the VIM, Git (or Subversion, CVS), and SSH with your key-pair.
  • Install the TMUX for multi-tasking inside the terminal.

If you are big fan of the Working Copy app, the FileProvider implementation in its on the way. You can track the progress and contribute to this feature at :-)

Beyond the Windows

DevOps Engineer’s Blog

Jung-Hyun Nam

Written by

DevOps Engineer @ DEVSISTERS, Corp., Microsoft MVP since 2009, Living in S.Korea.

Beyond the Windows

DevOps Engineer’s Blog

More From Medium

More on Programming from Beyond the Windows

More on Programming from Beyond the Windows

Creating Python Docker Image For Windows Nano Server

More on Programming from Beyond the Windows

More on Programming from Beyond the Windows

More on Programming from Beyond the Windows

Set up your SSH server in Windows 10 native way

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade