Created on 01 May 2018 ; Modified on 01 May 2018 ; Translation: italian
Caution. If you use Python in version 3.3 or higher, virtualenv is included in its libraries, in the venv module.
For this reason the suggested command to install a new one virtual environment become:
pyhton -m venv venwhere the first venv invoke the module, and the second is (by convention, you are free to choose a whatever name you like) the directory in which to install the Python interpreter and the needed libraries.
Just a quick note about starting up a Django environment using virtualenv.
Creating the project directory:
$ mkdir git-directory # ancestor of all master directories. will be:
# git-directory/
# |-- .git/
# |-- venv/
# +-- project-name
$ cd git-directory
$ virtualenv venv # create venv directory,
# it contains python, django, other pyth.libs
$ venv\Scripts\activate # activate the project virtual environment
# in MS Windows Op.System. In linux use:
# source venv/bin/activate
$ pip install django # load django libs in venv
$ django-admin.py startproject project-name # create the django project
# (alias: site) directory.
# BEWARE: app(s) will have
# other name(s) then this
Create the .gitignore file in git-directory. It contains:
__pycache__ migrations venv *.DS_Store *.lnk *.mo *.pyc *.sqlite3 settings.py secretkey.txt
Initializing the git repository:
$ git init $ git add -A $ git commit -am "initial commit"
Creating Django's project DB and superuser, checking project is running, saving it in git repository:
$ cd project-name $ python manage.py migrate $ python manage.py createsuperuser ... # compiling the request answers $ python manage.py runserver # starts django's http server ... # browse to http://localhost:8000 it shows the welcome django window ^C # stops django's http server cd git-directory git status git commit -am "empty django-project"
Now we have:
git-directory/
|-- .git/
|-- venv/
+-- project-name/
|-- manage.py
+-- project-name/
|-- __init__.py
|-- settings.py
|-- urls.py
+-- wsgi.py
and we are in git-directoy/project-name directory.
Creating a django's app:
$ python manage.py startapp app-name ... # edit app-name/models.py to define db entities used by app $ python manage.py makemigrations app-name $ python manage.py migrate
obtainig this directory structure:
git-directory/
|-- .git/
|-- venv/
+-- project-name/
|-- manage.py
|-- project-name/
| |-- __pycache__/ # this one will exists after
| | # at least a run of django's server
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| +-- wsgi.py
+-- app-name/
|-- __pycache__/ # as above
|-- migrations/
|-- templates # we'll create this one manually
| # if our app uses its own templates
|-- __init__.py
|-- admin.py
|-- models.py
|-- tests.py
|-- urls.py
+-- views.py