목록web (24)
완숙의 블로그
템플릿 상속 Html 상에서 겹치는 내용(Nav bar) 이런 내용들을 새로운 녀석을 만들 때 항상 붙여줘야 될까? 아니! base.html 같은 것에 기본 틀은 다 넣어두고, 새로운 녀석에는 다른 것만 넣자. 이게 템플릿 상속 장점 코드 재사용, 일관된 UI 구성 및 변경이 용이하다. 템플릿 상속의 구현 프로젝트 폴더에 templates 폴더 만들기 templates 폴더에 base.html 만들기 base.html 에 내용채워 넣기 settings.py 에 base.html 위치 알려주기 실습 프로젝트 폴더에 base.html 만들기 blog나, portfolio 앱에서가 아닌 프로젝트 전반에 먹일거니까 프로젝트폴더에 만들어야한다! 이렇게 이건 없던 폴더이니까, settings.py 에 알려줘야 한다..
Media 프로젝트로 업로드 되는 파일 => settings.py 에서 directory path, URL 을 지정해줘야 한다! 갑자기 URL? static에서는 없었는데..? Static vs Media Static 은 결국, 내 서버에 파일이 있는 경우를 의미하고, Media는 남의 파일을 받아서 보여주는 것을 의미한다. 그렇다면 Static은 그냥 내가 저장해놓은 파일을 불러서 보여주면 되지만, Media는 사용자가 업로드한 녀석을 내 서버에 받아두고, 이걸 다시 보여줘야 한다. 그렇다면 통신에 관련되서라면 URL이 빠질 수가 없다,, 왜? URL을 기반으로 우리는 통신하니까! 우리가 해야할 일 파일이 어떤 URL 을 타고 들어올 것인지 그리고 그 파일들을 어디에 모아서 관리할 것인지 이걸 sett..
포트폴리오 만들기! 여러가지 파일을 다뤄보는 것이 목표! 만들녀석 포트폴리오 배너를 클릭하면, 내가 넣은 사진과, 글이 보이도록 만들자. Django 에서 다루는 파일의 종류 Static File미리 서버에 저장되어 있는 파일서버에 저장된 그대로를 서비스해주는 파일 Dynamic File서버의 데이터들이 어느정도 가공된 다음 서비스되는 파일상황에 따라 받는 내용이 달라질 수 있음 정적 파일 정적파일의 종류 Static프로젝트 입장에서 이미 뭔지 아는 파일개발할 때 미리 준비해둔 파일미리 준비해둔 사진을 띄우는 일 media웹 서비스 이용자들이 업로드하는 파일사진 업로드 하기 이제 Bold 처리된 두가지를 지금 해보자! Static 파일의 처리 과정 Static 파일들의 위치 찾기 Static 파일들을 한..
자! 그런데 이제 글을 쓰려면 항상 /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..