Django says - No module named 'blog'

Directory structure is unusual. More usual and the one that matches your app being named blog would be

myproject/
├── myproject
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   ├── settings.cpython-36.pyc
│   │   ├── urls.cpython-36.pyc
│   │   └── wsgi.cpython-36.pyc
├── blog
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── db.sqlite3
└── manage.py

Django needs to be able to import your application, usually this means including the full path relative to the root directory 'myproject.blog'.

You could add <full_path_to_your_project>/myproject/myproject to PYTHONPATH so that you can import blog, but I would not recommend it