본문 바로가기
  • 가제가재_기록블로그
django

django Basic Prac01_02 CRUD

by 가제가재 2023. 7. 26.

참고자료

https://dschloe.github.io/python/2023/07/django_todolist_1/

[Django Project ToDoList - 1]

Django 프로젝트를 구성 해 보자 01.

이미지 출처 - https://copyassignment.com/crud-operations-in-java/

웹 개발의 왕 중요 요소 CRUD
이번엔 U(Update) 를 제외 한 C(Create) R(Read) D(Delete) 를 사용한다.

이번에 할 것

  1. 템플릿 추가 -> 웹 페이지를 페이지 답게 만들어 보자

  2. MTV -> MTV 중 M(Model) 의 왕기초를 불러보자

  3. python BD인 SQLite -> 세팅과 쿼리 해 보자

시작하기

0. 가상환경을 구성하고 프로젝트 세팅을 하자

01. 템플릿을 위한 폴더 생성

이전에 생성한 실행 폴더 [my_to_do_app] 에 [templates] 폴더를 생성,

그 안에 [index.html] 파일을 생성한다.

T(Templates) 를 생성한다.

주의사항)

Templates - index.html 로 바로 가면 가끔씩 runserver 오류가 생긴다.

해결하려면 Templates - app명 폴더 생성 - index.html 로 경로를 만들어 준다.

ex) my_to_do_app - templates - my_to_do_app(생략하지말것) - index.html

[index.html] 파일에 코드를 작성한다.

https://github.com/doorBW/Django_with_PracticeExamples/tree/master/project/Django-PracticeProject

이 html 과 다른 코드들은 Django 한 그릇 뚝딱 에서 따와 수정 한 것으로 코드를 사용 할 때마다 감사함을 떠올리자.

02. [views.py] 코드 수정

def index(request):
    return render(request, "새로 생성 한 인덱스.html")

03. 서버 확인

이쁘게 적용 되었다.

04. Model 관리 왕 기초 시작

실행 앱 폴더[my_to_do_app] 내부의 [models.py] 를 열면 이런 모습이다.

하단 이미지와 같이 채워준다.

from django.db import models

django.db 모듈 안에는 models 라는 클래스가 있다.

  • django.db : 모듈 데이터 베이스 관련 기능을 제공
  • models : 데이터 베이스의 모델을 정의하는 다양한 클래스 제공. 여기에선 CharField 를 사용하기 위해 불러온다.
class Todo(models.Model) :
    content = models.CharField(max_length=255)
  • CharField : djnago 모델에서 사용 하는 데이터베이스 필트 타입. 문자열 데이터를 저장하는데 사용한다. [max_length] 를 이용해 최대 문자열의 길이를 제한한다.

05. 마이그레이션 파일 생성

데이터 베이스 변경 사항을 마이그레이션 파일로 생성.

모델의 필드를 추가, 삭제, 수정하면 데이터 베이스의 구조가 변경되고, 이를 추적한다.

python manage.py makemigrations

잘 된 모습

06. 마이그레이션 실행

python manage.py migrate

많은 ok 이 들이 나오며 실행된다.

07. SQLite 실행

파이썬에서 사용하는 SQLite.

가벼운 SQL 정도로 생각하면 편하다.

python manage.py dbshell

잘 적용 된 모습.

08. 테이블 조회

DB에 정의된 모든 테이블을 출력한다.

sqlite> .tables

[auth_user_groups] 에 주목하자. 기본 설정으로 적용된다.

사용자 그룹과 사용자 간의 Many-to-Many 관계를 나타내는 중간 테이블.

09. 테이블 열 조회

sqlite> PRAGMA table_info()

- PRAGMA : DB에 직접 접근하는 설정 변경 함수. DB의 속성과 동작을 제어하는 SQL 대체 함수.

번외)

CommandError: You appear not to have the 'sqlite3' program installed or on your path

해결

  • SQLite: 파이썬에서 제공하는 간단한 DB 가안깔려서 에러나는것.

참고

https://kimec995.tistory.com/15

[SQLite 오류 00_미설치

환경 VSCode 에서 django 사용 중 DB 사용을 위해 SQLite 실행 -> 하단 오류 메시지 CommandError: You appear not to have the 'sqlite3' program installed or on your path Windows 10 64 해결 설치한다. 1. SQLite 템플릿 다운로드 htt

kimec995.tistory.com](https://kimec995.tistory.com/15)

'django' 카테고리의 다른 글

django Basic Prac02_03 Read + Delete  (0) 2023.08.13
django Basic Prac02_02 Db + Create  (1) 2023.08.09
django Basic Prac01_03 CRUD  (0) 2023.08.03
django Basic Prac01 _ 01프로젝트 시작하기  (0) 2023.07.26