"2. 장고 프로젝트, 앱 만들기"의 두 판 사이의 차이
(→장고 설치) |
(→관리자 등록) |
||
(같은 사용자의 중간 판 4개는 보이지 않습니다) | |||
30번째 줄: | 30번째 줄: | ||
|서버를 돌린 후 <nowiki>http://localhost:8000</nowiki> 으로 들어가 작동이 되는지 확인해본다. | |서버를 돌린 후 <nowiki>http://localhost:8000</nowiki> 으로 들어가 작동이 되는지 확인해본다. | ||
이게 된다면 기본적인 작동에 대한 문제는 없다. | 이게 된다면 기본적인 작동에 대한 문제는 없다. | ||
+ | |||
+ | |||
+ | |||
+ | 일반적으로 문제없이 잘 되지만, 다음의 에러가 뜨는 경우가 있다. | ||
+ | |||
+ | <code>UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte</code> | ||
+ | |||
+ | 원인은 다양하다. | ||
+ | |||
+ | * 컴퓨터 이름에 영어 외의 문자가 포함된 경우.(네트워크명이 한글인 경우. 보통 네트워크명은 컴퓨터 이름을 따라간다.) | ||
+ | * 경로에 영어 외의 문자가 포함된 경우.(한글이 포함되었는데 될 때도 있다.) | ||
+ | * 원인불명 : 장고를 삭제하고 다시 설치하면 되기도 한다. | ||
+ | |||
|} | |} | ||
+ | |||
+ | === 커스텀 유저 등록 === | ||
+ | 초보자에겐 어려우니, 실제 서비스를 만들고자 하는 경우가 아니라 장고의 기능을 익히고자 하는 경우라면 무시해도 좋다. 실제 서비스를 만들고자 한다면 서버작동을 확인한 후 가장 먼저 할 일은 커스텀유저 생성이다.(최대한 앱 이름은 다른 앱과 겹치지 않게 상세히 적자.) | ||
+ | |||
+ | [[회원관리 2. 커스텀유저(AbstractUser 이용)|커스텀유저(AbstractUser 이용)]] | ||
+ | |||
+ | 일반적으로 본격적인 프로젝트를 시작하기 전에 만들기가 권장된다. 프로젝트 도중에 모델을 바꾸는 것은 DB의 왜래키나 다대다 관계에 영향을 미치는데, 이를 다시 고치는 일은 꽤 어려운 일이기 때문이다.(중간에 커스텀모델을 추가하는 경우엔 DB자체를 지우고, 다시 구성한다.) 장고의 의존성 특성 때문에 최초의 DB에 생성되어 포함되어야 한다. | ||
=== 관리자 등록 === | === 관리자 등록 === | ||
57번째 줄: | 77번째 줄: | ||
=== 앱 이름은 특이하게 짓기 === | === 앱 이름은 특이하게 짓기 === | ||
주로 앱 이름을 account나 profile 등으로 만드는 경우가 있는데... 장고와 연동된 라이브러리에서 저런 일반적인 이름을 차지해버리는 경우가 있다. 이렇게 이름이 겹쳐버리면.. 차라리 처음부터 만드는 게 나을 정도로 복잡해진다. 때문에 처음부터 앱 이름을 구체적이고 특이하게 만드는 편이 좋다. | 주로 앱 이름을 account나 profile 등으로 만드는 경우가 있는데... 장고와 연동된 라이브러리에서 저런 일반적인 이름을 차지해버리는 경우가 있다. 이렇게 이름이 겹쳐버리면.. 차라리 처음부터 만드는 게 나을 정도로 복잡해진다. 때문에 처음부터 앱 이름을 구체적이고 특이하게 만드는 편이 좋다. | ||
+ | |||
+ | ==== 앱 이름 바꾸기 ==== | ||
+ | 나중에 앱 이름을 바꾸려면 각 파일 안의 앱 이름 뿐 아니라 앱 디렉토리 이름도 바꾸어야 하고, DB에도 변형을 가해주어야 한다. 꽤 귀찮고, 무엇보다 미숙하면 DB가 망가질 수도 있는 일이기에 권하지 않는다. 그래도 바꾸어야 한다면.. | ||
+ | |||
+ | # 각각의 파일 안에서 사용하는 앱 이름을 새 앱의 이름으로 모두 바꾸고, | ||
+ | # 앱 디렉터리 이름, 파일 이름(migrations 안의 파일들)을 바꾸고, | ||
+ | # DB에서 사용되는 테이블 이름을 모두 바꾸어주어야 한다. | ||
=== 앱 만들기 과정 === | === 앱 만들기 과정 === |
2022년 4월 26일 (화) 13:57 기준 최신판
1 프로젝트[편집 | 원본 편집]
1.1 장고 설치[편집 | 원본 편집]
python -m pip install --upgrade pip
으로 pip를 업그레이드 해준 후, pip install django
로 설치한다.
1.2 프로젝트 만들기[편집 | 원본 편집]
장고는 프로젝트 안에 여러 개의 앱으로 구성되는 구조이다.
가상환경을 사용한다면 그 이후에 진행하자.
과정 | 방법 | 비고 |
---|---|---|
프로젝트 디렉터리 생성 | mkdir projectname | 프로젝트를 둘 디렉터리를 만들고 그 안에서 다음의 과정을 진행한다. |
프로젝트 생성 | django-admin startproject config . | 프로젝트 디렉터리가 될 곳 안에서 실행('.'은 현재 위치라는 의미.)
config 말고 다른 이름도 가능하지만, 추후에 바꾸기 어렵기 때문에 일반적으로 사용하는 config를 권장한다. |
DB생성 | python manage.py migrate | DB변경사항을 반영하라는 명령이다. |
서버작동 | python manage.py runserver | 서버를 돌린 후 http://localhost:8000 으로 들어가 작동이 되는지 확인해본다.
이게 된다면 기본적인 작동에 대한 문제는 없다.
일반적으로 문제없이 잘 되지만, 다음의 에러가 뜨는 경우가 있다.
원인은 다양하다.
|
1.3 커스텀 유저 등록[편집 | 원본 편집]
초보자에겐 어려우니, 실제 서비스를 만들고자 하는 경우가 아니라 장고의 기능을 익히고자 하는 경우라면 무시해도 좋다. 실제 서비스를 만들고자 한다면 서버작동을 확인한 후 가장 먼저 할 일은 커스텀유저 생성이다.(최대한 앱 이름은 다른 앱과 겹치지 않게 상세히 적자.)
일반적으로 본격적인 프로젝트를 시작하기 전에 만들기가 권장된다. 프로젝트 도중에 모델을 바꾸는 것은 DB의 왜래키나 다대다 관계에 영향을 미치는데, 이를 다시 고치는 일은 꽤 어려운 일이기 때문이다.(중간에 커스텀모델을 추가하는 경우엔 DB자체를 지우고, 다시 구성한다.) 장고의 의존성 특성 때문에 최초의 DB에 생성되어 포함되어야 한다.
1.4 관리자 등록[편집 | 원본 편집]
관리자페이지를 이용하기 위해선 관리자로 등록되어 있어야 한다.
과정 | 방법 |
---|---|
관리자등록 | python manage.py createsuperuser
이후 안내되는 메시지대로 작성한다. |
관리자페이지 | 도메인주소/admin에 들어가면 관리자페이지가 나온다. |
2 앱[편집 | 원본 편집]
일정한 기능들을 모은 것.
2.1 앱을 나누는 이유[편집 | 원본 편집]
다양한 기능들을 분화해서 관리하면 수정에도 편하고, 기능의 관리, 파악에도 편하다.
예컨대, 회원관리 기능을 만들었는데, 다른 프로젝트에서 또다시 회원가입 기능을 만들 땐 단순히 프로젝트 내의 코드를 옮기는 경우가 많았다. 그러나, 앱처럼 모듈화 해두면 필요한 기능을 그냥 통째로 사용하면 된다.
2.2 앱 만들기[편집 | 원본 편집]
2.2.1 앱 이름은 특이하게 짓기[편집 | 원본 편집]
주로 앱 이름을 account나 profile 등으로 만드는 경우가 있는데... 장고와 연동된 라이브러리에서 저런 일반적인 이름을 차지해버리는 경우가 있다. 이렇게 이름이 겹쳐버리면.. 차라리 처음부터 만드는 게 나을 정도로 복잡해진다. 때문에 처음부터 앱 이름을 구체적이고 특이하게 만드는 편이 좋다.
2.2.1.1 앱 이름 바꾸기[편집 | 원본 편집]
나중에 앱 이름을 바꾸려면 각 파일 안의 앱 이름 뿐 아니라 앱 디렉토리 이름도 바꾸어야 하고, DB에도 변형을 가해주어야 한다. 꽤 귀찮고, 무엇보다 미숙하면 DB가 망가질 수도 있는 일이기에 권하지 않는다. 그래도 바꾸어야 한다면..
- 각각의 파일 안에서 사용하는 앱 이름을 새 앱의 이름으로 모두 바꾸고,
- 앱 디렉터리 이름, 파일 이름(migrations 안의 파일들)을 바꾸고,
- DB에서 사용되는 테이블 이름을 모두 바꾸어주어야 한다.
2.2.2 앱 만들기 과정[편집 | 원본 편집]
과정 | 방법 | 비고 |
---|---|---|
생성 | django-admin startapp 앱이름 | 프로젝트 디렉터리 안에서 실행.
그냥 단순히 앱 이름의 디렉터리를 만드는 것 뿐. 기존의 앱을 옮겨온다면 그냥 붙여넣기를 하면 된다. |
설정클래스 등록 | Settings.py에 앱 등록config/settings.py 안에...
INSTALLSED_APPS 항목에 추가한다. |
INSTALLSED_APPS 항목 안에 앱이름만 추가해준다.
ex)INSTALLED_APPS = [ 'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'앱이름', ]
혹은 앱의 config를 직접 등록해준다. 앱디렉터리의 apps.py 안의 Config를 직접 등록해줘도 된다. 앱 이름이 account라면 account.apps.AccountConfig를 등록한다. |
삭제 | 그냥 단순히 앱 디렉터리를 지우고 settings.py에서 등록한 앱을 지워주면 된다. |
이후 MVT를 작성하면 된다.