일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 개발
- 청소년복지론
- 장고웹
- sqlite
- 자바스크립트날짜get
- 오류종류
- 자바스크립트for문
- 다른테이블에속해있습니다
- webkitrecognition
- 사례관리
- 장고프로젝트
- 장고
- 안드로이드
- PostgreSQL
- 자바스크립트수학
- R데이터분석
- javaScriptError
- 이행은이미다른테이블에속해있습니다
- Python
- Android
- speechtoText
- 파이썬
- 자바스크립트날짜형식
- 장고웹프로젝트
- cmd명령어
- forof문
- speechAPI
- 이행은이미다른
- 자바스크립트날짜
- 자바스크립트forinforof차이
- Today
- Total
지금도 개발중
Python with Django : 장고 웹 프로그래밍 & PostgreSQL 사용해서 만들기(1) 본문
저번 글들은 "파이썬 웹 프로그래밍, 실전편"이라는 책을 참고하여 연습해본 글들입니다. 이번 글부터는 제가 실제 만들고 싶은 웹사이트를 만들어보도록 해보겠습니다. 만약 파이썬 설치 및 PostgreSQL 설치 등 진행이 안되신 분들은 아래의 링크를 참고해주세요.
0. 개발환경
- Python : 3.8.3
- Django : 3.0.7
- PostgreSQL : 12.3
- psycopg2 : 2.8.5
- OS : Windows 10
1. 가상환경 접속 및 프로젝트 생성
# 가상환경으로 접근
C:\dev\Python\VENV>C:\dev\Python\VENV\dJangoVenv\Scripts\activate.bat
# 프로젝트생성
(dJangoVenv) C:\dev\Python>django-admin startproject mySite
# 프로젝트 상위 폴더 이름 바꾸기 - 상위 폴더와 하위폴더명이 동일하기에 상위폴더명을 변경
(dJangoVenv) C:\dev\Python>ren mySite finpmProject
# 서버실행
(dJangoVenv) C:\dev\Python\finpmProject>python manage.py runserver
2. 프로젝트 데이터베이스 변경하기
* PostgreSQL 설치 및 데이터베이스, 테이블 생성까지 완료한 상태라고 가정하고 프로젝트를 진행합니다. 만약 데이터베이스 생성을 하지 못하신 분들은 아래의 링크를 참고해주세요.
Python 프로젝트를 생성해보시면 데이터베이스는 sqlite3으로 default되어있을겁니다. 저는 이제 sqlite가 아닌 PostgreSQL을 사용할 예정이라 이 부분을 변경하도록 하겠습니다. PostgreSQL로 데이터베이스 설정을 변경하려면 Python 프로젝트의 setting.py를 수정해야합니다.
# 변경 전
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# 형식
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': ‘<db_name>’,
'USER': '<db_username>',
'PASSWORD': '<password>',
'HOST': '<db_hostname_or_ip>',
'PORT': '<db_port>',
}
}
# 변경 후
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'finpm',
'USER': 'finpm_admin',
'PASSWORD':'비밀번호',
'HOST':'127.0.0.1',
'PORT':'5432',
}
}
* PostgreSQL의 psycopg2와 sqlalchemy 차이점 : psycopg2는 실행하고자 하는 쿼리를 스트링형태로 그대로 넘겨주면 되서 편하지만 쿼리 실행 결과가 python list형태로 반환되기 때문에 이를 다루기가 까다로운 점이 있습니다. sqlalchemy는 쿼리를 조회하려면 meta를 이용해서 select 클래스를 사용해야 하기에 복잡합니다. 하지만 meta를 사용하지 않고 pandas의 read_sql를 이용해 조회하면 sql구문 그대로 조회가 가능합니다. psycopg2와 sqlalchemy 중 sqlalchemy를 추천하는 이유는 pandas만 이용할 때는 둘 중 아무거나 사용해도 무관하지만 read_sql_table의 경우 sqlalchemy 연결할 때만 동작이 가능합니다.
1) psycopg2 설치
# 가상환경으로 접근
C:\dev\Python\VENV>C:\dev\Python\VENV\dJangoVenv\Scripts\activate.bat
# psycopg2 설치
(dJangoVenv) C:\dev\Python\finpmProject>pip install psycopg2
# psycopg2 실행
(dJangoVenv) C:\dev\Python\finpmProject>python -c "import psycopg2"
2) 마이그레이션 및 슈퍼유저 생성
# 마이그레이션
(dJangoVenv) C:\dev\Python\finpmProject>python manage.py migrate
# django 관리자 생성
(dJangoVenv) C:\dev\Python\finpmProject>python manage.py createsuperuser --username finpm_admin
# 테스트 서버 실행
(dJangoVenv) C:\dev\Python\finpmProject>python manage.py runserver
3) 데이터베이스 연동확인하기
만약 연동이 성공되었으면 pyadmin4에서 해당 데이터베이스의 schema - Tables에서 Django와 연동된 테이블목록을 확인할 수 있습니다.
4) 127.0.0.1 확인하기
python manage.py runserver을 하면 테스트 서버를 실행하게 되는데 정상적으로 실행되는지 확인합니다.
위의 사이트는 admin 페이지로 아까 전 createsuperuser에서 등록했던 Username과 Password를 입력하면 됩니다.
정상적으로 로그인되는 것을 확인할 수 있었습니다.
'언어 > Python' 카테고리의 다른 글
Python with Django : 장고 웹 프로그래밍 템플릿 상속 방법(3) (0) | 2020.06.12 |
---|---|
Python with Django : 장고 웹 프로그래밍 model.py 설정하는 방법(2) (0) | 2020.06.11 |
Python with Django : 파이썬을 이용한 단순 웹서버 구축 (Simple Web Server) (0) | 2020.06.10 |
Python with Django : 파이썬의 기초 숫자형 부터 응용까지 (0) | 2020.06.10 |
Python with Django : 파이썬 연습 Blog 앱 만들기 (책 파이썬 웹 프로그래밍, 실전편 참고) (0) | 2020.03.31 |