전체 글
-
[Django] Template 및 View 구현하기파이썬/Django 2023. 1. 5. 18:00
📁 config/urls.py from django.contrib import admin from django.urls import path from rooms import views urlpatterns = [ path('admin/', admin.site.urls), path("rooms", views.say_hello), ] urlpatterns는 path를 모아둔 리스트이다. path(이동할 url, 실행할 함수) 📁 rooms/views.py from django.shortcuts import render from django.http import HttpResponse def say_hello(request): return HttpResponse("hello!") 그리고 /rooms 로 이동하..
-
[Django] 어드민 페이지 디테일 수정하기파이썬/Django 2023. 1. 4. 14:53
생성한 어메니티가 클래스 명으로 나오는 현상 고치기 어메니티 클래스 내부에 아래 함수를 추가한다. def __str__(self) -> str: return self.name 전체코드 📁 rooms/models.py from django.db import models from common.models import CommonModel class Room(CommonModel): """Room Model Definition""" class RoomKindChoices(models.TextChoices): ENTIRE_PLACE = ("entire_place", "Entire Place") PRIVATE_ROOM = ("private_room", "Private Room") SHARED_ROOM = ("sh..
-
[Programmers] 가장 가까운 글자 _Python알고리즘/프로그래머스 2023. 1. 3. 09:41
문제 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(s): answer = [] word = {} for i, w in enumerate(list(s)): if w not in word: answer.append(-1) word[w] = i else: answer.append(i - word[w]) word[w] = i return answer
-
[Django] Reverse Accessors, 외래키 Foreign Key파이썬/Django 2023. 1. 3. 09:38
Reverse Accessors Reverse Accessors 가 필요한 이유 숙소 주인이 얼마나 많은 방을 가지고 있는지 보기 Room owner Room.objects.filter(onwer__ dir() >>> dir(me) : user가 가진 메소드와 속성들을 보여줌 booking_set, room_set 등 user가 가지고 있는 모든 방과 예약 등을 한 번에 보여주는 메소드를 가지고 있음 me.room_set.all() -> QuerySet을 얻을 수 있음 외래키 사용하기 ForeignKey experience = models.ForeignKey( "experiences.Experience", null=True, blank=True, on_delete=models.SET_NULL, # boo..
-
[Django] ORM, QuerySet, Lookup파이썬/Django 2023. 1. 3. 09:30
Django Shell 열기 # python shell 열기 python manage.py shell >>> # 사용할 app 임포트하기 >>> from rooms.models import Room ORM .get() Room.objects.get(pk=1) 한 번에 두 가지 이상의 요소는 get 할 수 없음 .get()은 검색 결과가 1개 뿐인 것을 반환할 수 있음 .all() .filter() Room.objects.filter(price__gt=15) Room.objects.filter(name__contains="서울" ) .create() 새 데이터 생성하기 Amenity.objects.create(name="Amenity from the console", description="How cool..
-
[Django] 관계(Relationship) 설정하기 many to many, one to may, many to one파이썬/Django 2022. 12. 31. 03:34
one to may 일대일 관계 User => [Room1, Room2, Room3] many to one 다대일 관계 [Room1, Room2, Room3] => User many to many 다대다 관계 [Amenity1, Amenity2, Amenity3] => [Room1, Room2, Room3] Room 과 Amenity 사이의 관계(Relationship) 만들기 어메니티는 여러 개의 방에 복수의 어메니티가 존재할 수 있으므로 다 대 다 (N:M) 관계이다. amenities = models.ManyToManyField( "rooms.Amenity", ) 위 코드를 Room 클래스 안에 넣어준다. 전체 코드 📁 rooms/model.py from django.db import models ..
-
[Django] common app으로 공통코드 관리하기파이썬/Django 2022. 12. 30. 09:02
common app 모든 app에서 공유 가능한 공통 코드를 가지고 있는 앱. 📁 common/models.py from django.db import models class CommonModel(models.Model): """ Common Model Definition """ # auto_now_add : 이 model이 처음 만들어진 날짜와 시간을 전달 created_at = models.DateTimeField(auto_now_add=True) # auto_now : 이 model이 업데이트 될 때마다 그 날짜와 시간을 전달 updated_at = models.DateTimeField(auto_now=True) class Meta: abstract = True class Meta: 의 역할 이 C..
-
[Django] app 생성하고 model 설정하기, 옵션 추가하기파이썬/Django 2022. 12. 29. 09:10
사용자 유저 프로필 기능 추가하기 📁 users/models.py from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class User(AbstractUser): # gender 컬럼에 옵션으로 넣어 줄 클래스 class GenderChoices(models.TextChoices): # 첫번째 값은 데이터베이스에 들어갈 value, 두번째 값은 관리자 페이지에 들어갈 label MALE = ("male", "Male") FEMALE = ("female", "Female") class LanguageChoices(models.TextChoices): KR = ("k..