목록웹 (6)
완숙의 블로그
QuerySet 쿼리셋은 장고에서 가장 유용하게 사용하는 것들 중의 하나이다. 굉장히 직관적으로만 설명할 것이니 참고하길 바란다. 기본적으로 모델을 만들 때, 다른 모델과의 관계를 가질 수 밖에 없다. 그 관계로는 ForeignKey, ManyToManyField가 있다. 한명의 사용자에 여러 개의 방이 있을 수 있는 것이 ForeignKey, 한 방이 여러개의 부가시설(wifi, 전자레인지 등)을 가질 경우 ManyToManyField이다. 그렇다면, 방에 해당하는 User를 알 수 있을까? class Room(core_models.TimeStampedModel): """ Room Model Definition """ host = models.ForeignKey( "users.User", on_dele..
자! 그런데 이제 글을 쓰려면 항상 /admin 으로 들어가야되니까 너무 싫어. 그러니까 만들자! 어떻게 만들까? NAV바에 글쓰기 버튼을 만든다. 글쓰기 버튼을 누르면 입력창이 뜬다. 제출을 누르면 해당 입력한 내용의 detail 페이지가 뜬다. 시작! 구상부터 시작해보자. 글쓰기 버튼을 누를 때, 어떤 path로 보낼지 정해줘야 한다. 그 path 에 해당하는 views.py에 함수를 만들어준다. 그리고 이 함수가 반환하는 값에 html을 보여준다. 그러니 new.html 부터 만들자 그 다음, new.html 에서 데이터를 보내는 것은 form 태그의 submit 버튼을 눌러 보낼 수 있었다. 여기서 관건은, 그럼 submit 을 누름과 동시에 이번에는 database 에 정보를 입력 하는 것이 중..
자 이번에는 속도감있게! 저번까지 했던 것들을 복습해보자! VS code 켜기 가상환경 들어가기 $ source myvenv/bin/activate 프로젝트 만들기 $ django-admin startproject secondproject(프로젝트이름) 프로젝트 이름과 해당 파일 경로 안의 폴더이름이 겹치니 상위 프로젝트이름을 second 로 바꿔줌 내가 만들고 싶은 프로젝트파일 안으로 들어가기 $ ls $ cd second 앱 만들기 $ python manage.py startapp blog 앱을 만들었으니 settings.py 에 가서 등록을 해주자. # settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'dja..
블로그 게시판을 바꿔보자! home에서 글자수가 100개만 보이게 ...more 라는 링크달기 링크를 클릭하면 detail.html이 나오도록 1. home에서 글자수가 100개만 보이게 # model.py from django.db import models # Create your models here. class Blog(models.Model): title = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') body = models.TextField() def __str__(self): return self.title 여기서 아래에 추가해준다. def summary(self): retu..
이제는 모델에서 어떻게 보여줄 건지에 대해 알아보자! 데이터베이스에 있는 정보를 템플릿으로 바로 어떻게 보낼 수 있을까? 바로 갈 수 없고! views.py 에서 처리를 해줘야 한다! # views.py from .models import Blog # 동일한 폴더를 말할 때 . 을 사용, 거기서 Blog라는 클래스를 불러와라 def home(request): blogs = Blog.objects # Blog 라는 클래스안에 있는 객체를 blogs라는 녀석에 담을 거다. = 쿼리셋 return render(request, 'home.html', {'blogs' : blogs}) # 마지막 인자는 딕셔너리 형으로 모델로 부터 객체 목록을 받아올 수 있다. 이걸 query set ..
실습을 하기전에 새로운 프로젝트를 만들어야 한다! # 상위 폴더로 간뒤 가상환경 켜기 $ source myvenv/bin/activate # 새프로젝트 만들기 $ django-admin startproject secondproject # 프로젝트로 들어가기 $ cd secondproject # blog라는 앱 만들기 $ python manage.py startapp blog 앱까지 만들어 줬으니 project안의 settings.py에 blog라는 앱을 만들었다고 알려줘야 하니까, INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'd..