카테고리 없음

내일 배움 캠프 6 주차 2일

하늘유니콘 2023. 4. 18. 19:24
#세팅
-m venv snsvenv #파일 만들어짐

.\snsvenv\Scripts\actvate #가상 환경에 진입하기

pip install django ==3.1.3

python -m pip install --ugrade pip  #pip 최신 버전으로 설치하기

 

django-admin startapp pybo #app 생성

 

python manage.py runserver #개발 서버 구동

 

 

 

문제점: 404는 Http 오류중 하나라고 합니다.사용자가 요청한 페이지를 찿을 수 없는 경우에 발생합니다.

 

해결법:urls.py에 가서  사용자가 페이지 요청을 이해 할 수 있도록 "URL 매핑을 추가"해주면 해결됩니다.

 

urls.py 수정하기

from django.contrib import admin
from django.urls import path
from pybo import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('pybo/', views.index),
]

views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse("안녕하세요pybo에 오신걸 환영합니다.")
# Create your views here.

You have 18 unapplied migration(s).18개의 migration가 아직 적용되지 않았다라는 의미입니다.

 

 

 

마이그레이트까지 설치해봤습니다.

from django.db import models

class Question(models.Model):
    subject = models.CharField(max_length=200)
    content = models.TextField()
    create_date = models.DateTimeField()
    
class Answer(models.Model):
    question = models.ForeignKey(Question, db_delete=models.CASCADE)
    content = models.TextField()
    create_date = models.DateTimeField()    

# Create your models here.

pybo/models.py에 질문 모델 작성 options

 

Question 모델에는 제목(subject),내용(content),작성일시(create_date)를 속성으로 추가

 

subject는 최대 200자 이벤트를 주기 위해서 max_length=200을 입력

 

글자수를 제한을 주기 위한데이터가 필요한데 CharField를 사용

 

create_date 같은 날짜.시간 관련 속성은 DateTimeField를 사용

 

 

pybo/models.py에 답변 모델 작성 options

 

Question 모델을 속성으로 가져와서 다른 모델을 속성으로 가지고 올 때 ForeiginKey를 사용

 

* ForeiginKey 타모델과 연결하는 Key

 

*db_delete=models.CASCADE 연결된 질문이 삭제되면 답변도 함께 삭제하라는 뜻

 


settings.py에서 pybo 앱 등록

 

문제 : pybo.apps가 설정이 안되었다고 뜨고있다.나는 분명히 설정했는데 일단 코드를 살펴보았다.

 

해결 :'pybo.apps.PyboConfig' 뒤에 'pybo.apps.PyboConfig', 세미콜론을 안 붙여있었다.

 

 

문제 :on_delete가 에러가 나있었다.

해결: 코드를 살펴보았더니 db_delete로 오타가 있어서 on_delete로 수정했다.

 

class Answer(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    content = models.TextField()
    create_date = models.DateTimeField()

 

다시 makemigrations를 실행 했더니 잘 되었습니다.

 

파일이 생성 되었습니다.