Python-Framework/Python-Framework__Django

1) 프로젝트 생성 및 연결

말하는감자 2019. 1. 8. 21:28

인터넷 튜토리얼 보고 따라하다가 에러만 나서 헤메다가 내가 보기위해서 정리한 장고 시작하기



개발툴 : 파이참, 커맨드, 터미널

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