5/11 django 학습

이경화·2023년 5월 11일
0

django 학습

목록 보기
11/21

멋쟁이사자 django 학습(11)


24강 - DetailView를 이용한 개인 페이지 구현


멘토링 조사하기 숙제

  • render와 redirect의 차이
    render: API의 리턴값으로 template을 지정 가능

    render(request, template_name, context=None, content_type=None, status=None, using=None)

    render 는 다음과 같은 파라미터들을 가집니다. 이 중에서 request 와 template_name 은 필수적으로 필요합니다. request 는 위와 동일하게 써주게 되고, template_name 은 불러오고 싶은 템플릿을 기재해줍니다. 쉽게 생각해서 화면에 html 파일을 띄운다고 생각하면 됩니다. 이 때 context 로 원하는 인자를, 즉 view 에서 사용하던 파이썬 변수를 html 템플릿으로 넘길 수 있습니다. context 는 딕셔너리형으로 사용하며 key 값이 탬플릿에서 사용할 변수이름, value 값이 파이썬 변수가 됩니다.

    redirect: 다른 url(API)로 이동하기

    redirect(to, permanent=False, *args, **kwargs)

    redirect 는 다음과 같은 파라미터를 가집니다. to 에는 어느 URL 로 이동할지를 정하게 됩니다. 이 때 상대 URL, 절대 URL 모두 가능하며 urls.py 에 name 을 정의하고 이를 많이 사용합니다. 단지 URL로 이동하는 것이기 때문에 render 처럼 context 값을 넘기지는 못합니다.

    render 는 템플릿을 불러오고, redirect 는 URL로 이동합니다. URL 로 이동한다는 건 그 URL 에 맞는 views 가 다시 실행될테고 여기서 render 를 할지 다시 redirect 할지 결정할 것 입니다.

  • django orm이란?
    Django ORM이란 Object Relational Mapping의 줄임말이며 객체(Object)와 관계형 데이터베이스(Relational)을 연결(Mapping) 해준다는 뜻이다. Django ORM을 사용한다면 쿼리문 없이 파이썬 코드만으로 데이터베이스에 접근할 수 있다.

  • django orm 자주 사용하는 문법
    User 스키마를 가지는 테이블을 생성하고 데이터베이스의 데이터를 표와 같이 추가합니다.

    from django.db import models
    class User(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()
    city = models.CharField(max_length=255)

1) 조회
User 테이블의 id가 1인 데이터를 조회하는 경우

User.objects.filter(id=1)

user 테이블의 모든 인스턴스 조회

User.objects.all()

2) 생성
name="choi", age=35, city="daejeon"이란 데이터를 추가하는 경우

u = User.objects.create(name="choi", age=35, city="daejeon")
u.save()
혹은
u = User(name="choi", age=35, city="daejeon")
u.save(force_insert=True)

3) 수정
id=1인 인스턴스의 age를 21로 변경하는 경우

u = User.objects.get(pk=1)
u.age = 21
u.save()

4) 삭제
id=1인 인스턴스 삭제

User.objects.get(pk=1).delete()

User의 모든 인스턴스 삭제

User.objects.all().delete()

  • hello_world_input : 사용자가 post 하게 하는 역할을 한다 ?

  • helloworld.object : post한 데이터

0개의 댓글