sql이아닌 파이썬으로 데베를 조작할수 있다
(그래도 어쨌든 orm 조작하는법도 배워야하자나요?)
orm은 어쨋든 자바에도있고 노드제이에스에도 있음 (#프로그래밍언어-데베)
객체와 데이터베이스의 매핑:
Python에서는 객체(예: 클래스, 인스턴스)를 사용해 데이터를 표현하고 작업해요.
데이터베이스는 테이블(데이터베이스에서 정보를 저장하는 기본 단위, 행렬 구조)을 사용해 데이터를 저장해요.
Django ORM은 주로 데이터베이스와의 상호작용에 중점을 두고 있습니다.
즉, 데이터베이스에 저장된 데이터를 읽고, 쓰고, 업데이트하고 삭제하는 일을 처리한다.
ORM과 API를 모두 이해하는 것이 좋습니다. 두 가지는 각기 다른 역할을 하지만 함께 사용되며, 서로 보완합니다.
어떤 식으로 보완?
두 도구는 함께 사용되어 데이터의 저장과 조회뿐만 아니라, 데이터의 주고받음을 가능하게 합니다.
데이터 저장과 조회 ---- 장고 orm
데이터 주고받음 ---- api
Django ORM은 정보가 저장된 상자와 쉽게 소통할 수 있게 해주고,
데이터 API는 그 정보를 주고받는 데 도움을 준다.
Django ORM은 정보가 저장된 상자와 쉽게 소통할 수 있게 해주고,
데이터 API는 그 정보를 주고받는 데 도움을 준다.
장고 ORM: 데이터베이스와 상호작용하며, 데이터의 저장, 조회, 수정, 삭제를 처리합니다.
CRUD
create
read
update
delete
(기본적인 소프트웨어)
데이터 API: 데이터베이스에서 정보를 요청하고 제공하며, 웹 애플리케이션과 사용자 간의 데이터 교환을 처리합니다.
예)
날씨 앱: 날씨 앱이 있으면, 이 앱은 API를 통해 날씨 정보를 제공하는 서버(예: 기상청 서버)에 요청을 보낼 수 있어요. 서버는 최신 날씨 정보를 보내주고, 앱은 그 데이터를 사용자에게 보여주는 거죠.
<데이터베이스 기초용어 정리하고 가기>
행 (Row):
테이블의 각 행은 데이터의 하나의 레코드를 나타냅니다. 예를 들어, 사용자 정보를 저장하는 테이블에서 각 행은 하나의 사용자 정보를 담고 있을 수 있습니다.
열 (Column):
각 열은 테이블에서 저장되는 데이터의 속성을 정의합니다. 예를 들어, 사용자 정보 테이블에서 "이름", "이메일", "가입일" 등이 열이 될 수 있습니다.
manager
데베 쿼리작업 도와줌
이름은 objects
쿼리셋 ?
데이터 베이스에서 조회한 목록
데이터 베이스에서 orm으로 조회했을 때 나오는 데이터들이 객체
데베를 orm으로 조회했을때 나오는 데이터들의 객체(왔다갔다함) = 반복가능한iterable -> 반복문 사용가능한 객체
리스트로도 접근 가능
객체란 개념이 모호하여 찾아봤다.
클래스: 'Book'이라는 클래스를 정의할 수 있습니다. 이 클래스는 책의 제목, 저자, 출판 연도 등의 속성을 가질 수 있고, '책 읽기'와 같은 메서드를 가질 수 있습니다.
객체: 클래스는 추상적인 개념이고, 실제로 프로그램에서 사용되는 데이터는 이 클래스의 인스턴스, 즉 객체입니다. 예를 들어, book1 = Book("The Great Gatsby", "F. Scott Fitzgerald", 1925)는 'The Great Gatsby'라는 구체적인 책을 나타내는 객체입니다.
공통된 것들을 하나로 묶기위해서 클래스를 쓰는거야?
ChatGPT의 말:
네, 클래스는 공통된 특성을 가진 것들을 하나로 묶어 관리하기 위해 사용됩니다. 프로그래밍에서 클래스를 사용하는 주요 목적은 재사용성, 조직화, 그리고 추상화입니다.
클래스의 주요 목적
재사용성: 클래스를 정의하면, 그 클래스를 기반으로 여러 객체(인스턴스)를 생성할 수 있습니다. 예를 들어, Person이라는 클래스를 정의하면, 이를 이용해 여러 사람 객체를 생성할 수 있습니다. 각 객체는 공통적인 속성과 기능을 가지면서도 서로 다른 개별 데이터를 가질 수 있습니다.
조직화: 클래스는 관련된 데이터와 메서드를 하나로 묶어, 코드의 조직화와 유지보수를 쉽게 만듭니다. 예를 들어, 자동차와 관련된 모든 속성(예: 색상, 속도)과 기능(예: 운전, 브레이크 작동)을 Car 클래스에 묶어 둘 수 있습니다.
추상화: 클래스는 복잡한 시스템을 단순화하는 데 도움을 줍니다. 클래스를 사용하면, 시스템의 복잡한 내부 동작을 숨기고, 사용자에게는 간단한 인터페이스만을 제공합니다. 예를 들어, print() 함수는 복잡한 출력 과정을 숨기고, 사용자는 단순히 함수 호출로 결과를 출력할 수 있습니다.
파이썬의 매직 메서드(Magic Methods)는 특별한 이름을 가진 메서드들로, 파이썬의 객체들이 특정 동작을 수행할 때 자동으로 호출됩니다. 이 메서드들은 이름이 두 개의 밑줄(__)로 시작하고 끝나기 때문에 "매직" 메서드라고 불립니다.
매직 메서드의 역할
매직 메서드는 객체가 다양한 상황에서 적절히 동작할 수 있게 만들어 주는 메서드입니다. 예를 들어, 객체를 더하거나, 비교하거나, 문자열로 변환하는 등의 동작을 수행할 때 매직 메서드가 호출됩니다. 이러한 메서드들은 클래스의 행동을 커스터마이징할 때 매우 유용합니다.
클래스명.매니저이름부르기.쿼리셋api
Manager
우리가 모델 클래스를 생성하면 Django는 자동적으로 CRUD 할 수 있는 Database API를 제공합니다.
그리고 집사를 한명 붙여주는데 그게 바로 Manager!
manager 이름: objects
장고 쉘shell
장고가 제공한 기능을 사용할 수 있는 환경에서 shell이 필요하다.
터미널창에 python manage.py shell 하면
쉘로 접근 할 수 있게 된다.
쉘(Shell)은 컴퓨터와 사용자가 상호작용할 수 있게 해주는 프로그램입니다. 쉘은 명령어를 해석하고 실행하며, 사용자와 운영 체제 사이의 인터페이스 역할을 합니다.
쉘의 종류
Bash (Bourne Again Shell): 가장 널리 사용되는 쉘로, 많은 Linux 배포판과 macOS에서 기본 쉘로 사용됩니다. 스크립트 작성 및 명령어 입력을 지원합니다.
Zsh (Z Shell): Bash와 유사하지만 더 많은 기능과 사용자 정의 옵션을 제공하는 쉘입니다. 많은 macOS 사용자들이 사용합니다.
Fish (Friendly Interactive Shell): 사용하기 쉬운 기능을 제공하며, 자동 완성 기능이 뛰어나고 직관적인 인터페이스를 가지고 있습니다.
PowerShell: Windows에서 주로 사용되는 쉘로, 객체 기반의 명령어 처리가 가능하고, 스크립트 작성이 가능합니다.
Command Prompt (cmd): Windows의 전통적인 명령줄 인터페이스입니다.
쉘이 하는일
명령어 입력: 사용자가 키보드로 입력한 명령어를 처리합니다.
출력: 명령어 실행 결과를 사용자에게 표시합니다.
스크립트 실행: 여러 명령어를 포함한 스크립트를 실행하여 자동화 작업을 수행합니다.
프로그램 실행: 다양한 프로그램과 유틸리티를 실행할 수 있습니다.
불러올때
from __ imoport __
from 불러올폴더 import 불러올파일
쉘을 더 편리하게 사용하게 하는 프로그램 2개 설치
install django-extensions는 pip install django-extensions
설치후 setting.py로 가서 앱 등록 하기
INSTALLED_APPS = [] django_extensions
안에 추가하기
install ipytho는 pip install ipython
새 프로그램 설치 후 반드시 하는 작업
pip freeze > requirements.txt
하나의 Article 생성하기
Article.objects.create(title='third title', content='마지막 방법임')
# save()가 필요하지 않음