GitHub

https://github.com/Choidongjun0830

전체 글 444

노마드 코더 에어비앤비 클론 코딩 #9 Urls and Views

Views config 폴더의 'urls.py' : 유저가 특정 url로 접근했을 때, 장고가 해야할 행동에 대해 적혀있다. 각 App 폴더마다 있는 'views.py'는 직접 import해야 사용할 수 있다. 그래서 꼭 이름이 views.py일 필요는 없다. 이를 직접 import하는 방법은 두가지다. ①urls.py에 적어주기 views.py에 함수 작성 # views.py from django.http import HttpResponse def say_hello(request): return HttpResponse('Hello!') -> urls.py에 path 적어주기 # urls.py from room.views import say_hello urlpatterns = [path("rooms",s..

노마드 코더 에어비앤비 클론 코딩 #8 Power Admin

Methods admins.py와 models.py 모두에 function을 정의할 수 있다. 만약 오직 관리자 페이지에서만 function을 사용할 것이라면, admins.py에 정의한다. 만약 관리자 페이지 뿐만 아니라 다른 곳에서도 사용할 것이라면, models.py에 정의한다. Method 만들기 클래스 안에 있는 메서드는 항상 self를 첫번째 매개 변수로 받아야한다. 꼭 self라 할 필요는 없고, 단지 꼭 하나의 초기 매개 변수가 있으면 된다. ⭐'방 리뷰의 평균 보여주기' 메서드 우리의 Room 모델의 review 속성을 가지고 있지 않다. 하지만, review 모델이 room을 가리키므로 Room에서 그 방을 가리키는 모든 review들에 접근할 수 있다. def rating(room):..

노마드 코더 에어비앤비 클론 코딩 #7 ORM

ORM(객체 관계 맵핑): Django를 데이터베이스에 연결. 파이썬을 사용하듯이, 관리자 패널을 통하지 않고 데이터베이스와 '직접' 소통하는 법 Method > Django의 shell 시작: 'python manage.py shell' (Django가 구성된 console이 켜짐) > 우리가 만들었던 Room 모델을 불러옴: 'from rooms.models import Room' > 메서드: Django는 우리가 모델을 만들 때 'objects'라는 속성을 자동으로 부여해줌. objects에는 많은 메서드가 있음. 이를 이용하면 데이터베이스가 Room 모델에서 나온 데이터들을 꺼내오도록 시킬 수 있다. ex) 모든 Room에 접근하고 싶을 때 Room을 import하고 'Room.objects' '..

노마드 코더 에어비앤비 클론코딩 #6 Models and Admin

Models 'models.ImageField'를 사용하려면 터미널에 'poetry add pillow'를 해주어야 한다. #선택지 만들기 class GenderChoices(models.TextChoices): MALE = ("male","Male") #(데이터 베이스에 들어갈 값, 관리자 페이지에서 보게될 label) FEMALE = ("female","Female") gender = models.CharField(max_length=10,choices=GendrChoices.choices) #max_length는 선택지보다 길게,choices=클래스명.choices ManytoManyField: N:M, M:N -> 여러 개의 Amenity들이 여러 Room에 들어갈 수 있는 것처럼 다대다의 관계 ..

노마드 코더 에어비앤비 클론코딩 #5 USERS APP

1. 유저 프로필 커스텀 ( 프로필 사진, 카카오톡 로그인, 페이스북 로그인, ...) 새로운 프로젝트일 때 하는 것을 추천. 기존에 이미 데이터가 있다면 db 파일을 다 지워야할 수도 있다. 기본 유저 모델로 충분하더라도 커스텀 모델을 만들어 사용하는 것을 추천한다. User 모델을 우리만의 커스텀 User 모델로 교체 User App 만들기 ('python manage.py startapp users') > User Model 만들기 from django.contrib.auth.models. import AbstractUser #django가 사용하는 User를 가져와서 재사용 class User(AbstractUser): ... AbstractUser에 더 많은 기능이 있다. > Django에게 기..

노마드 코더 에어비앤비 클론코딩 #4 App 만들기

App 만들기 : 'python manage.py startapp app이름' -> App이름 폴더가 생성됨. models.py: App에서 데이터의 모양을 설명하는 파일. 파이썬 코드와 클래스로 설명해야함. class House(models.Model): #Model을 상속받아야함. name = models.CharField(max_length=140) #추가할 각각의 요소의 데이터 타입을 적어주어야함. price = models.PositiveIntegerField() max_length와 같이 attribute나 다른 정보들은 https://docs.djangoproject.com/en/4.1/ django 공식 문서를 보면 알 수 있다. ⭐ App를 만들면 config/settings.py에 있는..

노마드 코더 에어비앤비 클론코딩 #3

요즘은 환기를 위해 노마드 코더 강의를 듣고 있습니다.. 'django-admin startproject'를 했을 때 'manage.py' 파일이 생긴다. manage.py 파일이 터미널에서 django 명령을 실행한다. 개발 단계에서 vscode로 작업할 때는, manage.py를 사용해 실행한다. python manage.py runserver : django server를 실행하고, 터미널에서 그 링크를 볼 수 있다. 그 링크에서 나타나는 no such table : django session 오류: 데이터베이스 'db.sqlite3'에서 django_session을 찾는데 실패한 것. 이유??: django는 여러 기능을 가짐.(세션, 패스워드 등 모든 유저 데이터를 DB에 저장) 빨간 글씨로 m..

객체 지향 프로그래밍

class Human: def __init__(self,name): self.name = name def say_hello(self): print(self.name) class Player(Human): #Human을 상속 def __init__(self, name, xp): super().__init__(name) #Human의 init 메서드를 호출하는 것을 허용해준다. self.xp = xp class Fan(Human): #Human을 상속 def __init__(self,name, fav_team): super().__init__(name) #super: Human의 init 메서드를 호출하는 것을 허용해준다. self.fav_team = fav_team dongjun_player = Playe..

Baekjoon Online Judge 10816번 파이썬

문제 링크 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 10815번 문제와 유사해서 계속 이진 탐색 주변만 맴돌았다. 제대로 풀지 못했다. 정답 코드 1. Counter 이용 Counter를 이용해서 풀 수 있다. Counter는 각 원소가 몇번 나오는지 딕셔너리 형태로 반환해준다. ‘from collections import Counter’를 맨 위에 해주어야 한다. count = Counter(nums_..

Baekjoon Online Judge 10815번 파이썬

문제 링크 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net print(*result) : 리스트의 요소만 출력 정답 코드 import sys N = int(sys.stdin.readline()) nums_card = list(map(int,sys.stdin.readline().split())) M = int(sys.stdin.readline()) nums_int = list(map(int,sys.stdin.read..

728x90