I used Django, and personally I don't like Django startaproject command that not allow us to create project that contains dash "-". Also default appname has the same name with the project name can confusing the new comer in Django.
I always structures my project like this when start my Django project.
That's actually a Python convention issue rather than a Django issue. Python convention dictates preference for underscores. This is because dashes cannot be used in a module name.
I always structures my project like this when start my Django project.
$ mkdir -p my-example-project/src
$ cd my-example-project/src
$ django-admin startproject youtube_downloader .
so all Django related will be under src folder.