Development Environment : python 3.7, Windows 10
1. Virtual Environment Settings
- pip 를 통해 패키지를 설치 할 경우 global 폴더 (Windows 10 기준 설치경로\\Lib\\site-packages)에 설치된다. 그런데 하나의 서버에서 서로 다른 프로젝트를 작업 중 패키지 설치를 난무(?) 할 경우 이미 패키지가 사용 중이던 프로젝트가 비정상적으로 동작 할 수 있다. 따라서 프로젝트 별 패키지를 관리하기 위해 virtualenv (Virtual Environment) 를 사용한다. (말그대로 개발했던 환경을 그대로 유지하기 위함)
1) 가상환경 만들기 (python -m venv [폴더명])
C:\Users\User\pythonWorks>python -m venv kvenv
1) 가상환경 사용하기 (activate)
C:\Users\User\pythonWorks\kvenv\Scripts>activate
(kvenv) C:\Users\User\pythonWorks\kvenv\Scripts>
2. Django 설치 (pip install django~=2.0.0)
(kvenv) C:\Users\User\pythonWorks\kvenv>python -m pip install --upgrade pip
(kvenv) C:\Users\User\pythonWorks\kvenv>pip install django~=2.0.0
3. Django 프로젝트 생성 (django-admin startproject [프로젝트명] [경로])
(kvenv) C:\Users\User\pythonWorks\kvenv>django-admin startproject kblog
* 아래와 같이 생성됩니다. 이름이나 위치를 변경해서는 안됩니다.
kblog
├───manage.py
└───mysite
settings.py
urls.py
wsgi.py
__init__.py
4. pycharm 설치 (기본 IDLE 사용해도 무관)
https://www.jetbrains.com/pycharm/download/#section=windows
5. Timezone 및 언어 변경 (기존 UTC에서 timezone을 Asia/Seoul로 변경, en-us에서 ko로 변경)
settings.py
LANGUAGE_CODE = 'ko'
TIME_ZONE = 'Asia/Seoul'
6. Database 설정 (기본 설정이 sqlite3 로 되어있음, 그대로 사용)
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
7. sqlite3 migration (python manage.py migrate)
C:\Users\User\pythonWorks\kvenv\kblog>python manage.py migrate
8. 서버 구동하기 (python manage.py runserver)
C:\Users\User\pythonWorks\kvenv\kblog>python manage.py runserver
9. 애플리케이션 만들기 (python manage.py startapp blog
(kvenv) C:\Users\User\pythonWorks\kvenv\kblog>python manage.py startapp blog
1) kblog 서버에 blog 앱 등록하기
settings.py
INSTALLED_APPS = [
blog,
]
10. django.contrib.auth 사용하기 (기본 설치되어있음)
settings.py
INSTALLED_APPS = [
'django.contrib.auth',
]
1) auth url 추가
* 기본 제공 URL accounts/login/ [name='login']
accounts/logout/ [name='logout']
accounts/password_change/ [name='password_change']
accounts/password_change/done/ [name='password_change_done']
accounts/password_reset/ [name='password_reset']
accounts/password_reset/done/ [name='password_reset_done']
accounts/reset/<uidb64>/<token>/ [name='password_reset_confirm']
accounts/reset/done/ [name='password_reset_complete']
urls.py
from django.conf.urls import include
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')),
]
2) login 페이지 생성 및 연결
*django.contrib.auth 는 기본적으로 app/template/registration 폴더를 찾음
* templates/registration/login.html 생성 (하위 폴더도 모두 생성)
(kvenv) C:\Users\User\pythonWorks\kvenv\kblog\blog\templates
(kvenv) C:\Users\User\pythonWorks\kvenv\kblog\blog\templates\registration
(kvenv) C:\Users\User\pythonWorks\kvenv\kblog\blog\templates\registration\login.html
3) login.html 작성
login.html
<h2>Login</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Login</button> </form>
4) template 폴더 등록 및 리다이렉션 설정
settings.py
TEMPLATES = [ { ... 'DIRS': [os.path.join(BASE_DIR, 'templates')], ... }, ]
LOGIN_REDIRECT_URL = '/'
5) 접속 확인
http://127.0.0.1:8000/accounts/login/
6) 슈퍼계정만들기 (manage.py shell 사용하기)
(kvenv) C:\Users\User\pythonWorks\kvenv\kblog>python manage.py createsuperuser
Username (leave blank to use 'user'): cbkim
Email address: cheongbinkim@gmail.com
Password:
Password (again):
Superuser created successfully.
7) 로그인 후 '/' 로 리다이렉션되는지 확인
$ python manage.py shell >>> from django.contrib.auth.models import User >>> user = User.objects.create_user('chiken1', 'chiken1@out.org', 'pass5678') >>> user = User.objects.create_user(username = 'test1', email = 'na@na.com', password = '1234') >>> User.objects.all() # 전체 User 리스트 확인
'Python' 카테고리의 다른 글
Virtualenv 의존성 확인 (0) | 2020.02.18 |
---|---|
python+pygame 그림퍼즐 (0) | 2019.08.17 |
파이썬 1기 포트폴리오 양식 (0) | 2019.08.17 |
[Nexus] set up a PyPI proxy repository to access a remote package index - Windows 10 (0) | 2019.05.30 |