PythonAnywhere is a host specializing in, you guessed it, Python. The provider is incredibly popular among Python developers. The only reason it’s not as big as some other names in hosting is that it’s a hard specialist.
Let’s get to it and see what it can do for Django developers.
PythonAnywhere’s servers run on AWS EC2 instances, which is one of the most reliable and robust platforms out there. The base is already excellent.
The solution currently supports Python 3.8. PythonAnywhere usually takes about a month to roll out support for the new stable releases—which is incredibly fast—so expect Python 3.8.1 sometime by the end of January 2020.
You can quickly deploy Django from the dashboard. The platform also comes with many preloaded Python and Django packages.
This means you can easily import and use packages without downloading, which saves time setting up both Python and Django on the server. Of course, you can install any additional packages the traditional way.
PythonAnywhere provides you with a console and code editor, accessible from any device. You can write code and run programs from any web browser.
Even more importantly, you can switch devices and continue exactly where you left off. Not only do you have the benefit of the same error-checking and syntax highlighting everywhere, but you also don’t have to bother with copying files across devices.
Of course, you can upload files from a computer or a repository like GitHub just as easily.
The console lets you schedule up to 20 daily tasks and even makes it a bit simpler than using cron.
It’s an all-round excellent environment.
PythonAnywhere offers powerful Python-specific features, but there’s little in terms of traditional tools. The provider still takes care of fetching and installing Let’s Encrypt SSL for you.
You also get SSH access, which is essential for configuring a Django web server. PythonAnywhere will manage your server, though. Since the provider focuses exclusively on Python, you get very experienced professionals maintaining everything.
You do have a couple of cool features like sharing your screen with other PythonAnywhere users. This can be pretty useful if you work with other developers.
Speaking of working with others, PythonAnywhere also includes excellent features for teaching. You can set up accounts for students, assign tasks and files, monitor their progress, and have them collaborate in-app.
It’s worth pointing out PythonAnywhere has a free plan that’s decent for testing. It is pretty limited, though, and lacks a lot of crucial features—like using your own domain name.
As for paid plans, they range from $5/month to an enterprise-grade quoted plan. Since the platform runs on AWS, which is flexible, you can talk to support about customizing your plan.
The Django hosting resources are pretty generous for the price across the board. PythonAnywhere does impose a CPU limit—2,000 CPU seconds for the $5/month plan. This is just a soft limit, though, and PythonAnywhere will just assign a low priority to some of your tasks if you go over it. The provider only kills processes if you hit ten times the recommended CPU usage, at which time it’s already past time you upgraded.
All in all, you get excellent features and a few unusual ones to boot. The platform might be slightly more cost-effective for medium-sized apps, but it’s just a minor thing.
PythonAnywhere sort of expects its users to have experience with running an app. Therefore, it only provides support via an email ticket, which is a disadvantage if you need quick help.
Alternatively, you can also post to the forums. The community there is incredibly active, and PythonAnywhere’s staff replies to any unsolved queries.
The provider maintains a solid knowledge base, as well. You can find a range of PythonAnywhere Django tutorials about both using the platform and solving many development-related issues.
The agents responding to both emails and forum threads are experienced Django experts. You can get help with pretty much any issue, but you can’t really expect instant assistance.
PythonAnywhere Around the Web
PythonAnywhere is one of the most recommended Django providers. Pretty much every PythonAnywhere review praises the service for how well it works, and how helpful the features are.
One issue many users mention is the lack of WebSocket support. This means you’d have to go to a third-party WebSocket service to run real-time web apps, which can be a pain. There is a solution in the works to resolve this, but the PythonAnywhere team does not state when it will be out.
Other than that specific case, there’s little in terms of complaints.
PythonAnywhere is in-tune with what developers need and offers some of the best hosting for Django out there. It’s a solid choice, whether you’re just starting out or are an experienced user.