728x90
반응형

장고 7

장고(Django) 회원가입 페이지 구현하기, django.contrib.auth 활용

1. 회원가입 페이지로 연결되는 링크 추가 이전 게시물에서 만든 login.html 템플릿에 아래 코드를 추가하여 회원가입 페이지로 연결되는 링크를 추가한다. 로그인 또는 계정을 만드세요. 2. URL 매핑 login.html 템플릿에 {% url 'common:signup' %} 태그를 추가했으므로 이것에 대응되는 URL 매핑을 urls.py에 추가해주어야한다. 아래와 같이 추가해주면 회원가입 링크 클릭 시 views.signup 함수가 실행된다. from django.urls import path from django.contrib.auth import views as auth_views from . import views app_name = 'common' urlpatterns = [ path('l..

Web/Django 2021.08.07

장고(Django) 로그인, 로그아웃 페이지 구현하기, django.contrib.auth 활용

이번에는 로그인, 로그아웃 기능을 구현해볼 것이다. Django에서 로그인, 로그아웃을 도와주는 앱은 django.contrib.auth이다. 이 앱은 프로젝트 생성 시 settings.py에 자동으로 추가된다. INSTALLED_APPS = [ (... 생략 ...) 'django.contrib.auth', (... 생략 ...) ] 1. common 앱 생성 먼저 로그인, 로그아웃 기능을 구현할 앱을 추가해줄 것이다. 현재까지 게시판 기능을 구현한 'notes' 앱만 구현했으므로, 이제는 '공통 기능을 가진 앱'을 추가하여 구현할 것이다. 터미널에 아래와 같이 입력해서 common 앱을 생성하자. > django-admin startapp common 그리고 settings.py에 'common.ap..

Web/Django 2021.08.04

장고(Django) 템플릿 필터 생성 및 적용하기

1. 템플릿 필터 템플릿 필터란 템플릿 태그에서 | 문자 뒤에 사용하는 필터를 말한다. 예를 들어 아래 default_if_none은 템플릿 필터이다. {{ form.subject.value|default_if_none:'' }} 2. 게시물 번호 이전 게시물에서 구현했던 '페이징' 기능에는 아직 문제점이 하나 있다. 모든 페이지에서 게시물 번호가 항상 1부터 시작된다는 점이다. 이제 템플릿 필터를 활용하여 이 문제를 해결해볼 것이다. 먼저, 최근 게시물이 먼저 보여야하므로 게시물의 번호를 역순으로 정렬해야하고, 페이지별 게시물의 번호를 역순으로 정렬하려면 아래와 같은 공식을 적용해야한다. 번호 = 전체건수 - 시작인덱스 - 현재인덱스 + 1 시작 인덱스: 페이지 당 시작되는 게시물의 시작 번호 현재 인..

Web/Django 2021.08.04

Django(장고) static 디렉터리와 템플릿 상속 및 include 태그 사용

Django의 static 1. static 디렉터리 추가 static 디렉터리는 스타일시트 파일을 저장하는 곳이다. templates 디렉터리와 마찬가지로 static 디렉터리도 settings.py 파일에 등록해주어야한다. STATIC_URL = '/static/' STATICFILES_DIRS = [ BASE_DIR / 'static', ] 2. 스타일시트 작성 및 템플릿에 스타일 적용 static 디렉터리에 style.css 파일을 다음과 같이 간단하게 작성해보았다. textarea의 넓이를 100%로, "답변 등록" 버튼 상단에 100 픽셀의 여백을 설정했다. textarea { width:100%; } input[type=submit] { margin-top:10px; } 이제 question..

Web/Django 2021.08.03

Django(장고) url 별칭과 네임스페이스 살펴보기

이번에는 Django URL 별칭에 대해 정리해볼 것이다. 이전 게시물에서는 템플릿에 다음과 같이 html 코드를 작성했다. {{ question.subject }} 하지만 만약 url 형식을 /pybo/{{ question.id }} 에서 /pybo/question/{{ question.id }} 형식으로 변경해야한다고 하자. 이러한 경우에는 해당 url이 사용된 모든 html 문서를 찾아서 변경해주어야한다. 따라서 이런 문제점을 해결하기 위해 URL 별칭과 네임인터페이스를 사용한다! 1. URL 별칭 URL 별칭을 사용하기 위해선 URL 매핑에 name 속성을 부여해야한다. /notes/urls.py를 다음과 같이 수정한다. from django.urls import path from . import..

Web/Django 2021.08.03

Django(장고) 템플릿과 데이터 조회 및 URL 매핑하기

1. 데이터 목록 notes/views.py 파일의 index 함수를 다음과 같이 작성한다. from django.shortcuts import render from .models import Question def index(request): question_list = Question.objects.order_by('-create_date') #create_date를 역순으로 정렬 context = {'question_list': question_list} return render(request, 'notes/question_list.html', context) Question은 이전 게시물에서 생성한 모델 이름이고, Question.objects.order_by(기준)로 데이터를 정렬할 수 있다. ..

Web/Django 2021.08.02

Pycharm에서 Django 설치 및 개발환경 세팅하고 서버 실행하기

1. Django 설치 powershell 또는 아나콘다 prompt 창에 다음과 같이 입력하여 설치한다. pip install django 2. 프로젝트 생성 장고에서 '프로젝트'는 하나의 웹사이트이고, 프로젝트 안에는 여러 개의 앱이 존재한다. 이 앱들이 모여 웹 사이트를 구성한다. 여기서 앱이란 관리자 앱, 인증 앱 등과 같이 장고가 기본으로 제공하는 앱과 개발자가 직접 만든 앱을 칭한다. (장고의 앱은 프로젝트를 구성하는 작은 단위의 기능) Pycharm을 실행한 뒤 New project를 클릭하여 새 프로젝트를 생성해준다. Location에 프로젝트를 생성할 경로를 선택하고, Virtualenv로 선택, 그리고 아래 Location이 빨간색 밑줄처럼 venv로 설정되어있는지 확인한다. 이제 Cr..

Web/Django 2021.08.01
728x90
반응형