목록Programing Language/Web_Django (39)
완숙의 블로그
views.py 와 home.html 두 개만 건들여보자. 우리는 blog 앱에 대해 수정할 거다. pagination을 사용하기 위해서 views.py 에 import 하자. # views.py from django.core.paginator import Paginator views.py 의 home 함수를 고칠 거니, # views.py def home(request): blogs = Blog.objects return render(request, 'home.html', {'blogs':blogs}) 하나씩 작성해보면, # views.py def home(request): blogs = Blog.objects # 블로그 모든 글을 대상으로 blog_list = Blog.o..
지금까지 만든 블로그의 문제는! 글이 계속 아래로만 생성된다는 것이다. 이런식으로. 저 밑에까지 언제 읽고 앉아있냐 ㅠㅜ.. 그러니까 적당히 끊어줄 필요가 있다! Pagination 나중에 게시판 만들어보면 이게 필수적이다! ㅠㅜ 자, 열심히 해보자. 문제상황을 명확히 하는 것이 문제를 푸는데 있어 항상 우선적인 역할을 한다. 먼저, 이 Pagination을 하고 싶다면, 무엇이 필요할지 생각해보자. 화면이 보여져야 한다. Templates 세 개의 블로그 객체를 한 페이지로 출력해줘! 데이터 처리를 담당하는 Views 자, 이 pagination 역시, 장고에서 기본적으로 지원하는 기능이다. 그러면 이것을 사용하기 위해서는 앞에서부터 배워왔듯이, import 작업을 해줘야 한다. views.py imp..
사전 준비 account 라는 앱을 만들어주자. $ python manage.py startapp account settings.py 에 알려주자. # settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog.apps.BlogConfig', 'portfolio.apps.PortfolioConfig'..
이 기능들을 장고에서 이미 제공하고 있다! 그래서 이 녀석이 무엇인지! 어떤 것을 import해와야 되는지 공부해보자! 추가로! http 상에서 정보를 주고 받는 방식 (Method) 도 공부해보자. 이론 Accounts 라는 app을 만든다. views.py에 회원가입, 로그인, 로그아웃 함수를 만든다. urls, templates 만들기 이 중에서 views.py를 만드는게 핵심! http Method Web 상에서 정보를 주고 받는 방식 왜 Method를 나눌까? 우리 기존에 form 태그로 정보를 보내서 받을 때, views.py 에서 request.GET 이런 식으로 받아왔었다. 즉, default = GET 우리는 정보를 URL로 보낸다고 했는데, 그런데, GET 방식으로 정보를 보내면, 이 ..
템플릿 상속 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 에 정보를 입력 하는 것이 중..