티스토리 뷰
Django
1. 가상환경 설정
한 pc에서 여러 프로젝트 사용시, 각 프로젝트에 같은 패키지를 사용하는데 버전이 다른 것을 사용한다고 할때 계속해서 프로젝트 이동시 패키지를 재설치 해줘야 하는 문제가 생김 -> 프로젝트 별로 패키지를 관리하는 공간이 분리될 필요가 있음
- 가상환경을 제공하는 패키지 중 하나 :
virtualenv - 가상환경을 구축하고 싶은 폴더에서 터미널에
pip install virtualenv로 패키지 설치 virtualenv 가상환경 이름터미널에 입력하여 가상환경 생성cd Scripts->activate해서 가상환경 활성화 시킴pip install django를 통해서 장고 설치
ctrl + shift + p에서>Terminal : select default shell을 통해서 터미널 상태를 default shell로 cmd로 설정하면 가상환경 활성화가 문제가 없고, 나같은 경우에는 이상하게 상대경로는 활성화가 안되고 절대경로만 되어서 좀 당황했다.- 그리고 가상환경 활성화 하면 interpreter도 설정해줘야 한다. 그래서
ctrl + shift + p를 눌러>Python : select interpreter를 해서 가상환경에 존재하는 python.exe와 연결시켜주었다.
강의 따라서 실습을 하지만,,,, 강의 업데이트좀 했으면 좋겠다. 제발~ 그리고 질문게시판도 없다 ㅠ 어디라고 말은 안하지만
2. Django 개념 익히기
Django는 보안이 우수하고 유지보수가 편리한 웹사이트를 신속하게 개발하는 하도록 도움을 주는 파이썬 웹 프레임워크이다.
MVC: model - view - controller 로 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다.model: 데이터와 비즈니스 로직 관리(주로 데이터를 가짐)view: 레이아웃과 화면 처리 (데이터를 보여주는 방식 정의)controller: 명령을 모델과 뷰 부분 라우팅, 모델 및 뷰를 업데이트하는 로직 포함(처리,연결) / 어떨때는 바로 view에 처리 가능
view(input) -(sends)-> controller -(logic)-> model -(updates)-> view(output)
django의 코드 구조 (
MVT 아키텍쳐)URls(urls.py) : HTTP를 통해 요청을 받아 적절하게view로 제출view(views.py) : HTTP 요청을 받고 HTTP응답을 반환 처리하는 함수인데 반환처리 하기 위해서model을 통해 데이터에 접근하고,template에게 서식 설정을 맡김model(models.py) : 응용프로그램의 데이터 구조 정의하고 데이터베이스의 기록을 관리(추가, 수정, 삭제)하고 쿼리하는 방법(데이터베이스에 정보 요청하는 방법)을 제공하는 파이썬 객체template(파일이름.html) : 파일의 구조나 레이아웃을 정의, 실제 내용 보여주는 데 사용되는 플레이스 홀더를 가진 텍스트 파일임(꼭 HTML일 필욘 없음)view가 html 템플릿을 이용해서 동적으로 페이지를 만들고 모델에서 가져온 데이터로 채움
코드 구조 동작
HTTP 요청 뷰로 전달하기(urls.py) : URL mapper들이 저장되어 있으며 그중에urlpatterns맵퍼는url 패턴 경로과view 함수에 대한 목록들을 정의하여 HTTP요청이 지정한 url패턴과 일치하면 관련된 view함수가 요청을 전달함urlpatterns리스트 안에path(),re_path()함수가 항목으로 존재한다.path(일치시킬 url경로 패턴<사용 인수>, views.일치시 호출될 함수)re_path(정규식, )
3. 장고 기초 구조 만들기, 앱 등록
- 프로젝트(구조) 만들기 :
django-admin startproject 프로젝트 이름- 프로젝트 폴더가 생성되고, 안에 똑같은 이름의 프로젝트 폴더가 생성됨
- 앱(구조) 만들기 : 프로젝트로 들어간 상태에서
django-admin startapp 앱 이름 - 앱안에
MVT구조를 사용하기 위해서templates폴더를 생성
- 앱을 프로젝트에 등록
- 프로젝트 폴더에서
settings.py파일을 살펴보면INSTALLED_APPS라는 리스트가 나옴 기본적으로 장고에서 설치되어 있는 앱을 나타냄 그곳에앱 이름을 넣어 등록해주어야 view, model을 사용가능함
- 프로젝트 폴더에서
4. model 만들기
from django.db import models
# Create your models here.
class Sl_user(models.Model): # 장고에서 사용하는 models 모듈에서 Model클래스를 상속 받아야 함
username = models.CharField(max_length=64, verbose_name='사용자명')
# CharField 캐릭터 필드를 통해서 문자열을 담을 수 있는 필드
# username이라는 필드를 만드는데 길이는 64,
# verbose_name은 admin(관리자 창) 사용시 사용할 필드 이름으로 관리자 창에서 username이 아닌 '사용자명'으로 뜸
password = models.CharField(max_length=64, verbose_name='비밀번호')
registered_dttm = models.DateTimeField(
auto_now_add=True, verbose_name='등록시간')
# dttm 은 datetime의 약자 , DateTimeField 필드로 지정했고,
# auto_now_add를 활성화 하여 자동으로 현재시간을 Sl_user클래스에 추가
class Meta: # 클래스 안에 클래스를 넣어 테이블 명을 따로 지정-> 기본 앱과 구분하기 위해서
db_table = 'slowbuscamp_user'
5. 관리자 페이지 설정, 활용
프로젝트 디렉토리에서
python manage.py makemigrations명령어 실행 -> 아까 모델에 작성했던 필드가 적용되어 migrations 폴더 안에 db 관련 폴더(0001_initial.py)가 생성됨python manage.py migrate명령어 실행 -> db를 생성하는데 아까settings.py에서 있던 기본앱과 등록한 앱들의 테이블이 생성됨 ->db.sqlite3파일 생성(settings.py의 DATABASE에서 생성하도록 설정 되어 있다는 것을 확인 할수 있음)makemigrations및migrate가 안되면setting.py의 앱 등록이 잘 되어 있는지를 확인해야 한다.그리고
db.sqlite3파일 확인을 위해서sqlite3를 설치해야 한다.sqlite3 download 여기에서
sqlite-tools-win32-x86-3340100.zip를 다운 받아서 압축 해제 하여 넣고 싶은 곳에 넣고 시스템 환경 변수에서 경로 추가를 해주어야 cmd에서 어디에 있는 바로 실행이 가능하다. (참고로 시스템 환경변수 말고 자신의 환경변수에 넣으니 난 잘 되었다.)그리하여 데이터 베이스 확인은 프로젝트 디렉토리 상태의 터미널 cmd창에서
sqlite3 db.sqlite3를 통해서 해당 파일에 접근 가능하다.sqlite3 활성화 상태에서
.table명령 사용시 여러가지 테이블을 확인 가능하다.schema 특정 테이블 이름을 통해서 데이터 베이스의 필드를 확인 가능하다.만약
model파일의 필드의 특성들을 수정하면makemigration,migrate를 실행하여 바로 수정 사항을 데이터 베이스에 반영 가능하다.
Django admin
기본적으로 admin의 경우
settings.py를 통해 활성화 되어 있다.또한
urls.py의 경우에도 admin은 기본적으로 만들어져 있다.url주소에 admin을 붙이면 관리자 창을 이용할 수 있다.
python manage.py runserver를 통해서 서버를 돌리고 해당 ip주소로 들어가면 홈페이지가 뜬다.해당 ip주소에
/admin을 넣으면 관리자 로그인 화면이 뜬다.서버 종료는
ctrl + c로그인을 위해서 계정을 만들어야 하는데
python manage.py createsuperuser를 통해 만들수 있다.- 이를 통해서 로그인 하면 개발자 툴 페이지로 접근 가능하다.
강의가 역시 너무 성의 없다... 계속 뭔 느낌인지는 잘 파악 되지 않지만 따라가고만 있다. 그냥 이렇게 이렇게 한다 하고 쓱 보여주는 느낌이라 더 화난다. 정말이지,,,,,, 그리고 윈도우 환경에 대해서는 고려도 안해준다. 중간 중간에 빠진 부분도 있고. 그래서 오류나 안알려 준것 때문에 엄청 낑낑 거리느라고 많이 진도를 나가진 못했다. 솔직히 이해를 시켜주는게 중요한 것 같은데 그냥 따라 쳐봐라 그냥 이거 밖에 없는 것 같다.
유료 강의 수강 했는데 기초 언어 강의는 정말 좋았는데 가면 갈수록 실망이다. 더 reference를 찾아보고 읽어보고, 생활 코딩이나 유튜브 강의를 참고 해야 겠다.
'Dev > Django' 카테고리의 다른 글
- Total
- Today
- Yesterday
- todolist
- RUBY
- project
- Python
- Django
- JavaScript
- Git
- html
- async
- React
- 오버라이딩
- 드림코딩
- TypeScirpt
- NomadCoder
- hooks
- 생활코딩
- nodejs
- Class
- redux-toolkit
- 바닐라js
- object
- css
- instagram CSS
- 기능추가
- github
- 그림판 만들기
- Firebase
- nrc
- 트위터 클론
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 |
| 30 |