인터넷 튜토리얼 보고 따라하다가 에러만 나서 헤메다가 내가 보기위해서 정리한 장고 시작하기
개발툴 : 파이참, 커맨드, 터미널
DB : MySQL
파이썬 버젼 : 최신(3.대), 아나콘다
장고 버젼 : 최신(2.대)
모든 소스 관련 된 것은 파이참에서 이루어집니다.
다만 장고는 파이참 CE에서 run이 불가능하므로 프로젝트 생성 및 run은 터미널(혹은 커맨드)에서 이루어집니다.
1. 프로젝트 생성
터미널(커맨드)에서 원하는 공간으로 이동
공간에서 명령어 입력
django-admin startproject 메인프로젝트이름
이때 메인프로젝트의 폴더를 별도로 생성하지 않아도 자동으로 생성된다
만약 메인프로젝트의 폴더를 별도로 생성한후에 그 폴더 내부에서 명령어를 입력하면
경로/메인프로젝트이름/메인프로젝트 안에 프로젝트가 생성되므로 이중폴더가 싫다면 그냥 생성하는것을 추천한다
2. 어플리케이션 생성
만약 내가 하나의 웹 사이트 프로젝트를 진행중인데
그 사이트 안에 블로그도 있고 게시판도 있고 사용자 관리 기능도 있다면?...
그 기능 하나하나를 어플리케이션으로 별도로 관리할 수 있다
메인프로젝트 이름으로 생성된 폴더로 이동한 후에 어플리케이션을 생성해준다
python manage.py startapp 어플리케이션이름
3. 메인프로젝트 setting.py에서 DB정보 입력하기
메인프로젝트의 setting.py 에서 DATABASES 에 DB정보를 입력해준다
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysql',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306'
}
}
만약 oracle을 쓰고 싶다면 설정만 바꿔주면 간단하게 해결
4. 어플리케이션의 apps.py에서 어플리케이션 이름 확인
여기서 주의깊게 봐야 할 부분은 class의 이름이다
5. 메인프로젝트의 setting.py에 어플리케이션 등록
클래스 이름 복사해주고 메인 프로젝트의 setting.py를 OPEN
setting.py의 INSTALLED_APPS에 이름을 등록해준다
6. 모델 생성
어플리케이션의 models.py에 모델 정보 입력
인터넷 검색중에 발견한 내용을 고대로 사용했....다가 약간의 오류가 발견되어 급하게 약간 수정했다.
7. DB와 연결 및 테스트
python manage.py makemigrations 입력
이 상태에서 어플리케이션의 migrations 폴더 안을 보면 파일이 뭔가 자동으로 생성되어 있을 것이다
만약 생성되어 있지 않거나 오류가 난다면 망한것
python manage.py migrate 명령으로 데이터베이스에 테이블을 생성해준다
admin 페이지에 접속해주기 위해서 유저를 생성한다
python manage.py createsuperuser
이름 입력
이메일은 건너뛰어도 됨
암호 입력
8. admin 설정
admin 페이지에서 내가 생성한 어플리케이션을 보고싶다면 admin에 추가가 필요하다
어플리케이션 - admin.py에서
admin.site.register(models.py에서 등록한 클래스 이름) 입력한 후에 저장해준다
9. 서버 실행
python manage.py runserver로 서버를 띄우고 admin 페이지로 접속...
게시판이 정상적으로 노출되는지 확인
이곳에서 실행 불가 및 게시글의 추가 기타 등등이 불가능하다면 뭔가 오류가 난것이다...
그냥 멈추고 프로젝트 새로 생성하는게 마음 편하다
10. URL PATTERNS
path에는 정규 표현식 사용이 불가능하며 re_path에만 정규표현식 사용이 가능하다
내가 설정한 방법은
메인프로젝트의 주소에 접속 - 특정 주소로 접속하면 어플리케이션의 주소로 접속이다
예를들어서 127.0.0.1:8000으로 접속하면 아무런 일도 이루어지지 않지만
127.0.0.1:8000/blog로 접속하면 블로그로 이동하고
127.0.0.1:8000/blog/post/id로 접속하면 특정 게시글로 이동하는 것이다
blog어플리케이션의 urlpatterns
127.0.0.1/blog로 접속시 view의 index로
127.0.0.1/post/id로 접속시 view의 postOne으로 간다
메인 프로젝트의 urls
127.0.0.1/blog로 접속시 blog의 urls를 include하고 있다
이 방법을 사용하면 여러개의 어플리케이션을 간단하게 include할 수 있을것이라고(추측된다)..
11. VIEW 구현
12. VIEW에 구현한대로 접속 테스트
'Python-Framework > Python-Framework__Django' 카테고리의 다른 글
django rest api (0) | 2021.01.20 |
---|---|
django table drop (0) | 2021.01.13 |
django rest api 2) 프로젝트 실행하기 (0) | 2019.09.06 |
django rest api 1) 초기 셋팅 (0) | 2019.09.06 |
2) Detail 구현 (0) | 2019.01.10 |