Skip to main content

006 A Guide to Deploy Your Django Application on PythonAnywhere

Deploy Django on Python Anywhere
A step-by-step guide to deploy your django application on PythonAnywhere.
  1. Go to pythonanywhere.com
  2. Click on Console Tab
  3. Click on Bash Link
  4. Activate virtual environment with the following command: mkvirtualenv --python=python3.5 myproj
  5. use the command pip list to view all the packages that are already installed
  6. Use pip install django to install latest version of Django
  7. Get the application running in the instance by cloning from Github. Use git clone <HTTPS link> You will find the HTTPS link by clicking on Clone or download button in your github repository
  8. Use command ls to view all files and folders in the virtual environment.
  9. go into the project folder using cd <project_folder>
  10. Use command ls to view all files and folders inside the project folder
  11. Keep going inside until you find manage.py file
  12. Once you find manage.py, use the following command python manage.py migrate
  13. My application uses Pillow library so I get an error. I will install Pillow using the command pip install Pillow and then run python manage.py migrate again
  14. I have an app inside my project named mainApp, so I will use makemigrations command: python manage.py makemigrations mainApp
  15. Then run python manage.py migrate again
  16. Now we create superuser with the following command: python manage.py createsuperuser
  17. Fill in the username, password, email, etc. to create superuser
  18. If you get an error such as No module named argon2, you must install argon2 using following command: pip install django[argon2]
  19. Once argon2 is installed, create superuser using the command python manage.py createsuperuser
  20. Next go to pythonanywhere.com and click on Web tab
  21. Create a custom app by clicking on "Adda new webapp". Click Next. Click on "Manual configuration (including virtualenvs)". Click on Python 3.6. Hit Next
  22. It will first create a default application
  23. Scroll down to Virtualenv section and enter path to virtualenv
  24. Enter the follow: /home/<your user name>/.virtualenvs/<your virtual environment name>
  25. Click on "Start a console in this virtualenv" that appears now
  26. In the console type: ls
  27. Go inside folders using cd <folder name> until you find manage,py
  28. Type pwd and copy the path you get
  29. Go to anywherepython.com > web > under code section change source code to the path you have
  30. Click on the WSGI configuration file
  31. Delete lines between 13 and 47
  32. Go to # +++++++++++ DJANGO +++++++++++ and uncomment or add the following
    • import os
    • import sys
    • path = '/home/vinitk/django-signup-login-and-admin/RefOne'
      • Remember to change path = '/home/vinitk/mysite' to your path
    • if path not in sys.path:
    •     sys.path.append(path)
    • os.chdir(path)
    • os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<path to settings>")
      • In my case it is RefOne.settings
    • import django
    • django.setup()
    • from django.core.wsgi import get_wsgi_application
    • application = get_wsgi_application()
  33. Click on Save
  34. Go to Web tab > Click on the Configuration for link
  35. If you find an allow host error, then add the configuration for link to settings.py as follows
    • ALLOWED_HOSTS = ['vinitk.pythonanywhere.com', ]
  36. Push it to github and pull from github in pythonanywhere console
  37. Under Web Tab click on Reload button and then click on configuration for link
  38. Now we setup static for static files to be accessible for the application
  39. To not let django display errors to users change DEBUG to False in settings.py file. To do this either change on your PC and git push to github and git pull to pythonanywhere server or go to Files Tab and go to settings.py and make changes in the editor provided by python anywhere.
  40. Click Save and under Web Tab reload the application
Your website is running and hosted on cloud server provided by PythonAnywhere.

Comments

Popular posts from this blog

Difference between .exec() and .execPopulate() in Mongoose?

Here I answer what is the difference between .exec() and .execPopulate() in Mongoose? .exec() is used with a query while .execPopulate() is used with a document Syntax for .exec() is as follows: Model.query() . populate ( 'field' ) . exec () // returns promise . then ( function ( document ) { console . log ( document ); }); Syntax for .execPopulate() is as follows: fetchedDocument . populate ( 'field' ) . execPopulate () // returns promise . then ( function ( document ) { console . log ( document ); }); When working with individual document use .execPopulate(), for model query use .exec(). Both returns a promise. One can do without .exec() or .execPopulate() but then has to pass a callback in populate.

Machine Learning — Supervised, Unsupervised, and Reinforcement — Explanation with Example

🤖 Let's take an example of machine learning and see how it can be performed in three different ways — Supervised, Unsupervised, and Reinforcement. We want a program to be able to identify apple in pictures Supervised Learning You will create or use a model that takes a set of pictures of apple and it analyses the commonality in those pictures. Now when you show a new picture to the program, it will identify whether it has an apple or not. It can also provide details on how confident is the program about it. Unsupervised Learning In this method, you create or use a model that goes through some images and tries to group them as per the commonalities it observes such as color, shape, size, partern, etc. And now you can go through the groups and inform the program what to call them. So, you can inform the program about the group that is apple mostly. Next time you show a picture, it can tell if an apple is there or not. Reinforcement Learning Here the model you create or...

269. Alien Dictionary

  Solution This article assumes you already have some confidence with  graph algorithms , such as  breadth-first search  and  depth-first searching . If you're familiar with those, but not with  topological sort  (the topic tag for this problem), don't panic, as you should still be able to make sense of it. It is one of the many more advanced algorithms that keen programmers tend to "invent" themselves before realizing it's already a widely known and used algorithm. There are a couple of approaches to topological sort;  Kahn's Algorithm  and DFS. A few things to keep in mind: The letters  within a word  don't tell us anything about the relative order. For example, the presence of the word  kitten  in the list does  not  tell us that the letter  k  is before the letter  i . The input can contain words followed by their prefix, for example,  abcd  and then  ab . These cases will never ...