본문 바로가기
728x90
반응형
SMALL

웹 어플리케이션21

[Django] 북마크 앱 만들기 (1) 프로젝트 생성 django-admin startproject mysite . settings.py ALLOWED_HOSTS = [ 'localhost', '127.0.0.1', ] TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [ os.path.join(BASE_DIR, 'templates'), ], "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.con.. 2023. 6. 28.
[Django] Books 어플리케이션 (2) URLconf books 앱 폴더에 urls.py 파일을 만들고 각 페이지에 맞는 URL을 매치한다. from django.urls import path from . import views app_name = 'books' urlpatterns = [ path('', views.BooksModelView.as_view(), name='index'), path('book/', views.BookList.as_view(), name='book_list'), path('author/', views.AuthorList.as_view(), name='author_list'), path('publisher/', views.PublisherList.as_view(), name='publisher_list'), ] 클.. 2023. 6. 27.
[Django] Books 어플리케이션 (1) 프로젝트에 books 앱 추가 python manage.py startapp books setting.py : 어플리케이션 등록 (서버에 반영) INSTALLED_APPS = [ "books.apps.BooksConfig", # 새로 만든 앱 추가 "polls.apps.PollsConfig", "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", ] models.py 데이터베이스에 사용할 데이터들의 형태를 정리하기 위해 books 폴더의 models.py를 다음과 같이 수.. 2023. 6. 27.
[Django] 템플릿 시스템 (2) HTML 이스케이프 {{ value|safe }} 템플릿에 HTML 인쇄할 때는 HTML 이스케이프를 사용하여 해커가 악성 코드를 삽입하는 것을 방지해야 한다. HTML 이스케이프를 하려면 {{ value|safe }}를 사용한다. 템플릿 상속 {% extends "base.html" %} 템플릿 상속을 사용하여 다른 템플릿 기반으로 템플릿을 생성할 수 있다. 상속하려는 템플릿을 지정하려면 {% extends "base.html" %}를 사용한다. 템플릿 블록 {% block content %} Templates {% endblock %} 템플릿 블록을 사용하여 템플릿에서 재사용할 수 있는 코드를 생성할 수 있다. 블록을 생성하려면 {% block content %}, 블록을 끝내려면 {% endbloc.. 2023. 6. 26.
[Django] 템플릿 시스템 (1) 템플릿 시스템 장고의 템플릿 시스템은 템플릿 문법으로 작성된 템플릿 코드를 해석하여 템플릿 파일로 결과물을 만들어 준다. 템플릿 변수 {{ name }} 템플릿 변수는 파이썬 변수의 값을 저장하는 데 사용할 수 있다. 템플릿 변수에 접근하려면 중괄호 {{}}로 묶는다. 예를 들어, {{ name }}은 name이라는 파이썬 변수의 값을 반환한다. 템플릿 필터 {{ name|lower }} 템플릿 필터는 템플릿 변수에 함수를 적용하는 데 사용할 수 있다. 템플릿 필터를 사용하려면 필터 이름을 슬래시 (/)로 구분하고 변수에 붙인다. 예를 들어, {{ name|lower }}는 name이라는 변수의 값을 소문자로 반환한다. 템플릿 태그 {% for athlete in athletes %} {{ athlete.. 2023. 6. 26.
[Django] 템플릿 (Template) 템플릿 (Template) Django 템플릿은 Django 템플릿 언어를 사용하여 마크업된 텍스트 문서 또는 Python 문자열이다. 일부 구문은 템플릿 엔진에서 인식하고 해석한다. 주요 항목은 변수와 태그이다. 템플릿은 컨텍스트로 렌더링된다. 렌더링은 컨텍스트에서 조회되는 값으로 변수를 대체하고 태그를 실행한다. 나머지는 그대로 출력된다. 프로젝트 템플릿 디렉토리는 TEMPLATES 설정의 DIRS 항목에 지정된 디렉토리이다. 앱 템플릿 디렉토리는 각 어플리케이션 디렉토리마다 존재하는 templates/ 디렉토리를 말한다. 프로젝트 디렉토리에는 base.html 등 전체 프로젝트의 룩앤필에 관련된 파일들을 모아두고 각 앱에서 사용하는 템플릿 파일들은 앱 템플릿 디렉토리에 위치시킨다. 일반적인 경우 템.. 2023. 6. 22.
[Django] 뷰 (View) 뷰 (View) views.py는 뷰 로직을 코딩하는 가장 중요한 파일이다. 장고에서 함수형과 클래스형 두가지 뷰로 구분한다. 장고가 제공하는 제네릭 뷰를 사용하고 재활용 및 확장성 측면에서 클래스형 뷰를 쓰는 것이 좋다. 투표 어플리케이션 만들기 import logging from django.http import HttpResponseRedirect from django.urls import reverse from django.shortcuts import render, get_object_or_404 from polls.models import Question, Choice # Create your views here. def index(request): latest_question_list = Q.. 2023. 6. 22.
[Django] URL URL URL은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다. 쉽게 말해서, 웹 페이지를 찾기위한 주소를 말한다. URLconf URLconf 용어는 URL과 뷰를 매핑해주는 urls.py 파일을 말한다. URLconf를 정의할 때 하나의 파일 또는 2개의 파일에 정의할 수도 있다. 보통 프로젝트는 전체 URL을 정의하는 프로젝트 URL과 앱마다 정의하는 앱 URL 2계층으로 나눠서 코딩하는 방향이 좋다. 이 방식은 URLconf 모듈을 계층적으로 구성하므로 변경도 쉽고 확장도 용이해진다. URL 패턴별로 이름을 지정할 수 있고 패턴 그룹에 대해 이름 공간을 지정할 수 있따. 이는 reverse() .. 2023. 6. 20.
[Django] MVT 패턴 MVC MVC (Model-View-Controller)는 디자인 패턴 중의 하나로 프로젝트의 구성 요소를 Model (모델), View (뷰), Controller (컨트롤러) 역할로 구분한 개발 방법론이다. MVT Model-View-Template 패턴이라고 한다. 장고의 MVT 방식은 자바 웹 프로그래밍의 MVC 방식과 거의 동일한 개념으로 웹 프로그래밍 영역을 3가지 개념으로 나눠서 개발하는 방식이다. 테이블을 정의하는 모델 (Model), 어플리케이션의 제어 흐름 및 처리 로직을 정의하는 뷰 (View), 사용자가 보게 될 화면의 모습을 정의하는 템플릿 (Template)으로 구분해서 개발을 진행한다. MVT 패턴의 처리 과정 클라이언트로부터 요청을 받으면 URLconf를 이용하여 URL을 분.. 2023. 6. 20.
[Django] Reverse for '' not found. '' is not a valid view function or pattern name. {% url 'url name' %} 위와 같이 url name을 바로 지정하지 않고 장고 urls.py의 app_name과 함께 경로를 지정을 해야한다. 아래와 같이 템플릿에서 url의 string literal view 이름과 함께 app_name을 사용한다. {% url 'app_name:urlname' %} https://stackoverflow.com/questions/45724006/django-reverse-for-not-found-is-not-a-valid-view-function-or-pattern-na Django - Reverse for '' not found. '' is not a valid view function or pattern name I'm working on my pro.. 2023. 4. 9.
728x90
반응형
LIST