Django 9

‍박태우·2023년 4월 6일
0
post-custom-banner

#1. Model, DB 연동

  • 모델 : 데이터베이스가 장고내부에서 사용이 편하도록 연동을 시켜주는 작업 DB의 내용을 자세히 알지않아도 되는 편리한 환경을 장고에서 제공한다.

Row : Item
Columns : Attributes

  • models.py
    내부의 내용을 동적으로 우리가 원하는대로 바꿀 수 있는 능력을 원하는데, 이 동적인 능력을 DB와 연동시켜 우리가 저장을 하고 수정을 할 수 있도록 만드는 것이 목적.(연동하는 작업을 models.py에서 시작가능하다.)

  • python manage.py makemigrations (터미널에서 입력):
    우리가 models.py에다가 쓰는 내용을 DB와 연동시킬 파이썬 파일로 만들어주는 작업을 해준다.

여기에 작성해주는 class 하나가 DB에서 어떤 item이 하나 되는 것이다.


(models.Model 클래스를 상속받는 HelloWorld클래스를 작성한 후, 마이그레이션 후의 모습,
models.Model선택 후 ctrl+b를 눌러 Model 클래스의 정의로 이동 가능, 아래그림)

(원초적인 model 의 모습이라고 할 수 있다. 하나의 빵틀이라고 생각하자. 그리고 이것을 상속받아 더 원하는 것을 추가로 클래스로 작성하는 것이다.)

  • 코드 분석

    (text 한줄에 내용은 models 안에 있는 CharField(문자열 포함 필드)를 하나 가져옴, 최대 길이 255, null 은 이 값(text)가 없어도 되는지를 설명해줌. 있어야 하므로 False를 설정)



  • 마이그레이션 이후 생긴 파이썬의 모습

    (DB와 장고를 연결시켜주는 연결고리라고 생각하자.)

이 파일을 만들고 나서 자동으로 연결되는 것이 아니라 이것을 연동시켜주는 또다른 명령어를 입력해야함

=>python manage.py migrate


(manage.py migrate를 입력후 실행한 모습, 이제 연동이 된것이다.
처음으로 마이그레이션을 한것이기 때문에 그전에 되어있지 않았던것도 연동이 되어 리스트가 많은 것을 확인 할 수 있다.)

=> 장고에서 기본제공해주는 urls.py의 admin 그리고 auth 등에 대한 DB연동 작업도 실행 된것이다.(처음 연동했기 때문)




  • setting.py 를 통해 DB 정보 파악하기

    (분석 : DB가 db.sqlite3 라는 이름으로 BASE_DIR(베이스 디렉토리)에 있다는 뜻 db.sqlite3에 모든 정보가 저장되는 것.)

그리고

이파일은 정말 중요!! 임의로 지우면 골치아파짐. 웬만하면 지우지 말고 다른 방법이 있음. 지우지 말자!!!


#2. HTTP 프로토콜 GET,POST

  • 프로토콜 : 컴퓨터끼리 통신을 하는 과정에서 사용되는 규약같은 것

  • HTTP 프로토콜 : GET, POST 두종류의 프로토콜이 존재, 서버가 무엇을 사용자에게 줘야하는지에 대한 정보가 필요한데 그것을 넣어주는 방식이 GET 과 POST이다.

  • 우리가 원하는 주소로 요청을 보낸다고 하면(예를 들면 https://onion.haus/)

GET 방식>>
의 경우 조회를 하기위해서 요청을 보냄, 새로운 무언가를 만드는 것 보다는 적은 수의 데이터가 필요, 아래와 같이 새로운 파라미터를 넣어서 보내줌

(설명 : ?는 파라미터의 시작을 알림, param1에 value1을 매칭시켜서 param1에 value1값을 넣어서 서버에 보내준다. 서버측에서 이 파라미터를 가지고 추가적인 작업을 해서 응답을 보내준다.)



POST 방식>>
은 서버내에 어떤 정보를 새로 만들거나 수정하는 작업을 할 때 사용, 추가적으로 BODY 라는 내부에 있는 몸통에 데이터를 넣어서 보냄.
(몸통에 데이터를 숨긴다고도 표현하는데 이는 암호화까지는 아님.)
보낼 데이터가 많으면 브라우저 주소창에 입력할 수 있는 한계가 있다.
(GET 방식만으로는 힘듬)


(https:// 는 암호화가 되어있는 것, http://는 암호화가 되어있지 않은것)

profile
잘 부탁드립니다.
post-custom-banner

0개의 댓글