Skip to main content

Deploy Django app online for free!

So after a number of lines of code, brilliance and dreaming. Your next dream is for the world to see. Of course you can walk around with your computer and doing a 'manage.py runserver' But cumon guys, lets embrace the cloud.



Not like this guy though! I choose to deploy on PythonAnywhere. So you ask why?


1) Free amazing support - You actually talk to a live human !
2) Easy - Very easy
3) Affordable - As you scale up, it gets way better!


So by now I assume you are already on a version control system (So I will not waste much energy on that one). Maybe Ill someday write on my two favs Github and Bitbucket.


STEP 1:

Create an account on pythonanywhere. Kindly note that your username will be included in your apps url. So it will be like :

"yourUsername.pythonanywhere.com"


STEP 2:

Select other and set a bash console.

STEP 3:

Push your code from version control

This will push from (in my example) github to your pythonanywhere. You will also do something similar with your version control system.

STEP 4:

Setup a virtual environment then do your dependencies.


STEP 5:

Now to link your uploaded code and libraries with pythonanywhere. Leave the consoles tab and head over to the web tab.

Add a new web app.

Select manual configuration and proceed to select your python distro.

Enter name of your virtual env




Enter source code directory.

One thing that's important here: your Django project (if you're using a recent version of Django) will have a file inside it called wsgi.py. This is not the one you need to change to set things up on PythonAnywhere -- the system here ignores that file.

Instead, the WSGI file to change is the one that has a link inside the "Code" section of the Web tab -- it will have a name something like /var/www/yourusername_pythonanywhere_com_wsgi.py or /var/www/www_yourdomain_com_wsgi.py.

Click on the WSGI file link, and it will take you to an editor where you can change it.
Delete everything except the Django section and then uncomment that section.

Ensure to change the path variable and the DJANGO_SETTINGS_MODULE.

After this, go to bash, navigate to manage.py and migrate. If you go back to Web Tab and hit reload. You should see your site there. If not, there will be links to your logs and you can surely check as to why its happening.

STEP 6:

To serve static files open your settings.py  and add this line:

STATIC_ROOT = os.path.join(BASE_DIR, "static")

Proceed to bash again and do a manage.py collectstatic. 

Finally, set up a static files mapping to get our web servers to serve out your static files for you.
  • Go to the Web tab on the PythonAnywhere dashboard
  • Go to the Static Files section
  • Enter the same URL as STATIC_URL in the url section (typically, /static/)
  • Enter the path from STATIC_ROOT into the path section (the full path, including /home/username/etc)
Then hit Reload and test your static file mapping by going to retrieve a known static file.


Comments

Post a Comment

Popular posts from this blog

Making money with the falling rand: Lessons from Zimbabwe

It is no secret that the rand is falling like there is no tomorrow. This year alone it has fallen by over 18%. And if you look closely, at the last 3 years- it has fallen by 35%! This is not neglecting the economic setup where the slightest thing leads to ‘ toi toi. ' This trend of continuous striking and pay rate increase bargains has created such a vicious cycle. Prices rise, people strike, economy starts going through stuff. And we back at square one. We all know for sure that this cycle is bad. Zimbabwe and South Africa might not be different soon, only difference being that Zimbabwe chased the farmers, South Africa is chasing stabilisation. (Maybe the paradox of thrift  (prompted by the large population) will save them! Hope so.) In Zimbabwe 2008, a lot of people made a lot of money from ‘burning money’. This was whereby people took advantage of the bank rate versus the ‘streets’ rate of forex. The streets rate for forex was lower than the bank rate. Problem wa...

Artificial Neural Networks - Intro for beginners

The perceptron Single node perceptron Perceptrons form the basis for ANNs. Perceptron takes input and produces output as below: Input ➡️ Activation Function ➡️ Output Input If the weight is 0- input remains unaltered coming into the perceptron. Below is what happens to the input ∑ w i z i  ≽ t then y = 1. Else y = 0.  i t is the threshold which is set by the outgoing part. So the key to output is based on the weighted sum and the threshold. Activation function This is the processing part of the neuron and this determines output. So most commonly the ones used are the Sigmoid function and the hyperbolic tangent. QUESTION: Which activation function should I use? I am going to talk of three key activation functions a) Sigmoid The Sigmoid returns 0 or 1 and in code can be written as return 1.0/(1.0+Math.exp(-x) A Sigmoid is a mathematical curve having the characteristic S shape. DISADVANTAGE: Descending Gradient b) Tanh DISAD...

AI Simplified 2 : Bellman and Markov

Bellman equation  It's named after Richard Bellman and is defined as a necessary condition for optimality. It is associated with the mathematical optimization method known as dynamic programming. The deterministic equation is listed below:  V(s) = maxₐ  (R(s,a) + ɣ(V(s')) maxₐ : represents all the possible actions that we can take. R(s, a): The reward of taking an action at a particular state. ɣ: Discount. Works like the time value of money. You can see the dynamic programming aspect as we call the same method on s'. So it will recursively operate to solve the problem. Deterministic vs non-deterministic : Deterministic is definite, there is no randomness whereas non-deterministic is stochastic. So above we were not adding any randomness (deterministic) but nothing in this world is truly predictable, let's add randomness. Whereby each step is not so certain to be done (adding probability). It makes our agent more natural (being drunk! lol)...