본문 바로가기

Python/Django

장고 걸즈 튜토리얼 따라하기 14 - 장고 폼 장고 폼우선 blog 디렉토리 안에 forms.py 파일을 만든다.​xblog └── forms.py그리고 아래 코드를 작성한다.xfrom django import forms​from .models import Post​class PostForm(forms.ModelForm):​ class Meta: model = Post fields = ('title', 'text',)from django import forms : forms model을 import 한다.class PostForm(forms.ModelForm) : PostForm이라는 폼을 만들고 이것이 폼이라는 것을 알려준다.class Meta : 이 폼을 만들기 위해서 어떤 모델을 써야 하는지 알려준다. 폼과 페이지 링크blog/templates..
장고 걸즈 튜토리얼 따라하기 13 - 어플리케이션 확장 Post에 템플릿 링크 만들기blog/templates/blog/post_list.html 파일에 아래와 같이 링크를 추가한다.x{% extends 'blog/base.html' %}​{% block content %} {% for post in posts %} {{ post.published_date }} {{ post.title }} {{ post.text|linebreaksbr }} {% endfor %}{% endblock %}{% url 'post_detail' pk=post.pk %}을 설명하면,{% %}는 장고 템플릿 태그를 말한다.post_detail은 blog.views.post_detail의 뷰 경로이다.pk=post.pk이란 pk는 데이터베이스의 각 레코드를 식별하는 기..
장고 걸즈 튜토리얼 따라하기 12 - 템플릿 확장 템플릿 확장이란?템플릿 확장(template extending)은 사이트 안의 서로 다른 페이지에서 HTML의 일부를 재사용할 수 있는 것이다.이것을 활용하면 모든 파일마다 같은 내용을 반복해서 입력할 필요가 없고, 수정할 부분이 생겼을 때, 딱 한번만 수정하면 된다. 기본 템플릿 생성하기blog/templates/blog/에 base.html 파일을 만든다.​xblog└───templates └───blog base.html post_list.html그 다음 post_list.html에 있는 모든 내용을 base.html에 입력한다.{% load static %} Django Girls blog Django Girls Blog ​ {% for post in posts %} {{ post.publishe..
장고 걸즈 튜토리얼 따라하기 11 - CSS CSS란?HTML과 같이 마크업 언어로 작성된 웹사이트의 외관을 꾸미기 위해 사용되는 언어이다. 부트스트랩부트스트랩(Bootstrap)은 유명한 HTML, CSS의 프레임워크이다.https://getbootstrap.com/설치하기HTML 파일 내 태그에 이 코드를 입력한다.x그리고 서버를 실행한 다음 페이지를 확인해 보면 다음과 같이 보기가 좋아졌다. 정적 파일정적 파일(static files)이란 CSS와 이미지 파일에 해당되는 파일이다. 이것은 요청 내용에 따라 바뀌지 않기 때문에 모든 사용자들이 동일한 내용을 볼 수 있다.정적 파일 저장 경로blog 앱 안에 static 폴더를 새로 만든다.xxxxxxxxxx djangogirls ├── blog │ ├── migrations │ ├── stati..
장고 걸즈 튜토리얼 따라하기 10 - 장고 템플릿 템플릿 태그브라우저는 파이썬 코드를 이해할 수 없기 때문에 HTML에 파이썬 코드를 바로 넣을 수 없다. 템플릿 태그는 파이썬을 HTML로 바꿔주어, 쉽게 동적인 사이트를 만들 수 있다. post 목록 템플릿 보여주기이전 템플릿 동적 데이터에서 글 목록이 들어있는 posts 변수를 템플릿에 넘겨주었다. 이제 넘겨진 posts 변수를 받아 HTML에 나타나게 해야한다.장고 템플릿 안에 있는 값을 출력하려면, 변수 이름 안에 중괄호를 넣어 표시해야 한다.{{ posts }}blog/templates/blog/post_list.html 템플릿에서 두 번째와 세 번째 를 {{ posts }}로 바꾸고 페이지를 살펴본다.for loop를 이용해서 더 깔끔하게 출력해본다.{% for post in posts %} ..
장고 걸즈 튜토리얼 따라하기 9 - 템플릿 동적 데이터 템플릿 동적 데이터뷰는 모델과 템플릿을 연결하는 역할을 한다. post_list를 뷰에서 보여주고 이를 템플릿에 전달하기 위해서는, 모델을 가져올 필요가 있다.blog/views.py 파일을 열어서 post_list 뷰를 본다.from django.shortcuts import render​def post_list(request): return render(request, 'blog/post_list.html', {})models.py 파일에 정의된 모델을 가져오기 위해 from .models import Post를 추가한다.from django.shortcuts import renderfrom .models import Post 쿼리셋(QuerySet)글 목록을 게시일 published_date 기준으..
장고 걸즈 튜토리얼 따라하기 8 - 장고 ORM과 쿼리셋 쿼리셋이란?쿼리셋(QuerySet)은 전달받은 모델의 객체 목록이다. 쿼리셋은 데이터베이스로부터 데이터를 읽고, 필터를 걸거나 정렬 할 수 있다. 장고 쉘(shell)로컬 콘솔에서 아래 명령을 입력한다.​x(myvenv) ~/djangogirls$ python manage.py shell그러면 장고 인터랙티브 콘솔로 들어갈 수 있다. 모든 객체 조회하기모든 글들을 출력하기 위해서 blog.models에서 Post 모델을 import 해온다.>>> from blog.models import Post그리고 아래 명령을 입력해 모든 글들을 출력한다.xxxxxxxxxx>>> Post.objects.all() 객체 생성하기이번에는 새 글을 포스팅 해본다.우선 작성자 정보를 가져오기 위해서 User 모델을 불러온다..
장고 걸즈 튜토리얼 따라하기 7 - 장고 뷰 blog/views.py안의 파일을 살펴보면 다음과 같이 되어있다.​xfrom django.shortcuts import render​# Create your views here.여기에 간단한 뷰를 만들어본다.xxxxxxxxxxdef post_list(request): return render(request, 'blog/post_list.html', {})post_list라는 함수(def)를 만들어 요청(request)을 넘겨 받아서 render 메소드를 호출한다. 위 함수는 호출하여 return 받은 blog/post_list.html 템플릿을 보여준다.서버를 실행하고 http://127.0.0.1:8000/ 로 접속하여 확인해보면 TemplateDoesNotExist 에러를 볼 수 있다. 이는 템플릿..