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

App Programming/Django30

[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] 웹 서버 연동 원리 wsgi.py 장고는 runserver 명령을 사용하여 자체 웹 서버를 실행할 수 있다. 하지만 이 서버는 개발용으로만 사용하도록 설계되었으며 배포 환경에서 사용해서는 안된다. 따라서, 배포 환경에 사용하려면 Apache 또는 Nginx와 같은 웹 서버를 사용해야 한다. 이러한 웹 서버에 연결하려면 wsgi.py 파일을 만들어야 한다. 장고의 wsgi.py 파일에는 application 객체가 다음과 같이 정의되어 있다. application = get_wsgi_application() 웹 서버는 이 application 객체를 호출하여 장고 어플리케이션을 실행한다. 호출 전에 설정 정보를 로드해야 하며, 이 설정 정보는 mysite/wsgi.py 파일에 다음과 같이 지정된다. import os os.e.. 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] 폼 (Form) 폼 (Form) HTML에서 양식은 ...에서 방문자가 텍스트 입력, 옵션 선택, 개체 또는 컨트롤 조작 등과 같은 작업을 수행한 다음 해당 정보를 다시 서버로 보낼 수 있도록 하는 내부 요소 모음이다. Your name: 장고 폼은 데이터를 사용자로부터 서버로 전송하는 데 사용할 수 있는 도구 폼은 데이터를 모델에 저장하는 데 사용 forms 모듈 사용 클래스에서 각 필드 (CharField, TextField, DataField)를 정의 s_valid() 메서드를 사용하여 유효한지 확인 장고 폼 from django import forms class ContactForm(forms.Form): subject = forms.CharField(max_length=100) message = forms.Te.. 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] 셸로 데이터 다루기 셸 (Shell) 셸은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다. 셸은 사용자와 운영 체제의 내부 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙었다. 셸은 일반적으로 명령 줄과 그래픽 형의 두 종류로 분류된다. 장고에서 파이썬 셸을 사용하려면 먼저 장고 프로젝트의 루트 디렉토리로 이동하고 다음 명령을 실행한다. python manage.py shell import model 모델을 사용하기 위해 import를 해야 한다. Question 모델을 사용하려면 셸에서 다음 명령을 사용한다. from polls.models import Question objects 그 다음, objects 속성을 사용하여 객체를 생성할 수 있다. 예를 들어, Q.. 2023. 6. 23.
[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.
728x90
반응형
LIST