Django install
f:\>c:\Python27\Scripts\pip.exe install Django==1.8.4
C:\Python27\lib\site-packages\pip\_vendor\requests\packages\urllib3\util\ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL conn
ections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
You are using pip version 7.0.1, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting Django==1.8.4
C:\Python27\lib\site-packages\pip\_vendor\requests\packages\urllib3\util\ssl_.py
:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/la
test/security.html#insecureplatformwarning.
InsecurePlatformWarning
Downloading Django-1.8.4-py2.py3-none-any.whl (6.2MB)
100% |################################| 6.2MB 72kB/s
Installing collected packages: Django
Found existing installation: Django 1.5.11
DEPRECATION: Uninstalling a distutils installed project (Django) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling Django-1.5.11:
Successfully uninstalled Django-1.5.11
Successfully installed Django-1.8.4
기존에 old version 이 설치되어 있으면 알아서 uninstall 을 하고 설치한다.
그러면 django-admin.py 이 아래 경로에 생긴다.
- c:\Python27\Scripts\django-admin.py
startproject
source : https://github.com/i5on9i/django-templated:\mine\programming\python\myproject>c:\Python27\Scripts\django-admin.py startproject myproject
ref. 1에서 cookiecutter-django를 소개하고 있다.
- django-admin 을 사용한 startproject : django-admin and manage.py | Django documentation | Django
settings directory
ref. 1 의 5.2 절에서 settings 를 여러개 사용하는 경우를 위해서 아래처럼 settings folder 를 두는 방법을 이야기 해준다.- d:\mine\programming\python\myprojectroot\myproject\myproject\settings.py
- d:\mine\programming\python\myprojectroot\myproject\myproject\settings\
python manage.py runserver --settings=myproject.settings.local
django-admin runserver --settings=myproject.settings.local그리고 ref. 2 에 따르면 settings 를 여러개 사용할 때는 manage.py 보다는 django-admin 을 사용하라고 한다. 이것은 manage.py 에서 기본적으로 settings 를 설정하기 때문인듯 하다.
하지만, django-admin 은 3.0 에서 settings module 를 제대로 찾지 못한다.(import_module 에서 문제가 발생한다.) manage.py 는 잘 동작했다.
예제는 아래 링크를 확인하자.
- django-twoscoops-project/project_name/project_name/settings at develop · twoscoops/django-twoscoops-project · GitHub
- https://github.com/i5on9i/django-restframework-init : Django-1.10 버전의 settings
- Django 1.11 버전의 settings
Requirements directory
ref.1 에서 제한하는 방법중 하나가 requirement 를 txt 로 만들어 놓는 것이다.여기에 pip install -r base.txt 처럼 각 setting 에서 필요로하는 module 의 정보를 적어놓는다.(virtualenv 에 설치한 모듈정보로 이해하면 될 듯 하다.) 이 정보는 pip freeze --local 을 통해 얻을 수 있다.
SECRET KEY 는 소스에서 빼자
SECRET_KEY 는 source repository 에서 빼내는 쪽으로 고려하도록 하자. ref.1 에서는 이것을 file 로 빼고, .gitingnore 에 추가했다. production.py 의 get_env_setting 함수를 참고하자.startproject 를 하면 SECRET_KEY 가 settings.py 에 생성된다.
json 설정
json 을 이용한 설정은 아래 소스를 참고하자.SECRET_KEY
diffsettings
diffsettings 를 통해 default setting 과의 현재 setting 과의 차이를 확인할 수 있다.d:\...> django-admin diffsetings
psycopg2 설치
여기 를 참고하자.DB 계정 setting
DB 관련 정보를 myproject.settings.local.py 에 설정해 주면 된다.
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': join(DJANGO_ROOT, 'db.sqlite3'),
# }
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "mydb",
"USER": "test",
"PASSWORD": "test",
"HOST": "localhost",
"PORT": "",
}
}
PostgreSQL 에서 user 정보를 생성하는 방법은 여기를 참고하자.
Database Migration
위의 설정에서 정해준 db 는 postgreSQL 에 이미 만들어져 있어야 한다.
그리고 그 DB 에 USER (위에서는 'test') 가 접근할 수 있어야 한다.
(myproject) d:\mine\programming\python\...>manage.py makemigrations --settings=myproject.settings.local No changes detected
이후에 migrate 을 하면 실제로 db table 을 만들어 준다.
(myproject) d:\...>manage.py migrate --settings=myproject.settings.local
이제 user table 까지 만들어진 것이다. user table 의 field 확장에 관해서는 2번째 글을 읽도록 하자.
Run
8080 port 로 서버를 띄워보자.(myproject) d:\mine\programming\python\...>manage.py runserver --settings=myproject.settings.local 8080
아무것도 해놓지 않아서 아래처럼 뜰 것이다.
Reference
- Two scoops of Django Best practices for Django 1.8
- django-admin.py and manage.py | Django documentation | Django
- 쿠...sal: [컴][웹] 구글 앱 엔진 web app 대신에 Django 이용하기 5 - SECRET_KEY
댓글 없음:
댓글 쓰기