Django是1.11,Python3.6,Mac OS

中英文混杂,主要为为自己记录用,时间有限,见谅。


  • Create Dev Directory for general project storage

    • $cd ~/projects

    • $mkdir Dev && cd Dev

  • Create Virtual Environment

    • $mkdir project_name && cd project_name

    • $pip install virtualenv virtualenvwrapper

    • $mkdir ~/.venvs

    • $export WORKON_HOME=~/.venvs

    • $export PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin:$PATH

    • $source /Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenvwrapper.sh

    • $mkvirtualenv —python=/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 project_name

    • To activate project_name virtual env:

    • $workon project_name

    • To deactivate project_name, just 

    • $deactivate



  • Install Django & Start Project

    • $pip install django==1.11.4

    • $mkdir src && cd src

    • $django-admin startproject project_name . 

    • (Don’t forget the “.” )

  • Create New Settings Module

    • Currently working in ./src

    • $cd project_name

    • $mkdir settings && cd settings

    • Change BASE_DIR in settings.py:

    • BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    • To

    • BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

    • Move default settings.py into new settings module and rename settings.py to base.py

    • $mv settings.py ./settings/base.py

    • $cd settings/

    • Copy base.py to make new (local.py, dev.py & pro.py) files:

    • $cp base.py local.py 

    • $cp base.py dev.py

    • $cp base.py pro.py

    • To use local.py as our starting point since we use sqlite3 database. We will move to dev.py with development is going forward and finally pro.py when we decide to release our product.

    • In local.py use the following settings. 


    • from .base import *
      
      DEBUG = True
      
      ALLOWED_HOSTS = []
      
      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.sqlite3',
              'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
          }
      }
    • Remove the related contents from base.py accordingly.

    • Edit manage.py and replace os.environ.setdefault("DJANGO_SETTINGS_MODULE", “project_name.settings") with os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings.local")



    • Or you can set env variable:

    • $export DJANGO_SETTINGS_MODULE = project_name.settings.local

    • Or you can directly run manage.py with settings options.e.g:

    • $python manage.py runserver —settings=project_name.settings.local

    • $python manager.py createsuperuser (to create a super user account)

    • Openhttp://127.0.0.1:8000/, you should see the successful message.

    • You also can loginhttp://127.0.0.1:8000/admin using the super user. There you can create and update groups and users. 

    • You can use pip freeze to save a list for installed packages.

    • $pip freeze > requirements.txt

    • (You can use $pip install-r requirements.txt to install all the packages for dependency)