PythonAnywhere is becomes popular recently among other modern and cool platforms with which you can develop your web applications, specifically in Python. And of course you can use it to host those of our web-related exercises which require publishing in the internet.
The only subtle thing is that it is not a simple hosting, but really "Platform" so it wants you to do many basic actions in their preferred way. As I am not acquainted with this resource, I tried it a bit and now could share basic actions you may be interested in.
After logging in you get to Dashboard. There would be main menu with Consoles
, Files
, Web
etc. Since initially
you have no applications running, you need to switch to Web
tab.
Click Add a new web app
here. Skip the popup about domain name and possible upgrade. Now you are asked about
choosing your web-framework. If you (like me) are not acquainted with any, then click Manual configuration
and
select your favorite Python version. I've chosen 2.7
. Click Next
on few more popups. At last you are told that
your web-app is running.
At this point you will see the url
of your application. For example mine is
http://rodiongork.pythonanywhere.com. You should check it is visible.
Serving static files is very simple. At the same Web
tab where your application is shown (with two large green and
red buttons above) - scroll down to subtitle Static files
.
Here you can add forwarding for requests to such files. Click Enter URL
and type in something like /files/
- that
is a subfolder of your site. Now click Enter path
and type some folder in your home folder, like /home/rodiongork/files
.
Switch to Files
tab and create this folder here. Add necessary files to it.
Now switch to Web
tab again and click Reload
(green button). From now the file should be visible, like this:
http://rodiongork.pythonanywhere.com/files/test.txt
At the same Web
tab you are told that your application is governed by file like this:
/var/www/rodiongork_pythonanywhere_com_wsgi.py
You can proceed from there to edit this file - or find it in Files
tab. Anyway when you open it you will see:
Flask
application - leave these two lines as is if you (like me) are not acquainted with
this framework (but it is worth to learn it bit later);hello_world
attached by annotation (?) application.route
to the root path of your site.You can simply add your own function below and attach to your own end-point. Try something like this:
@application.route('/random')
def throw_dice():
import random
return 'Random value is ' + str(random.randint(1, 6))
Click Save
and then go back to Web
tab of the Dashboard. Reload your application so that changes take effect. The
result should be observable immediately. Here is mine:
http://rodiongork.pythonanywhere.com/random
Hope this short introduction may help you to dive into wonders of web-programming with Python and its nice frameworks!