Back/Django

Back/Django

6. 로그인 로그아웃 구현하기

6. 로그인 로그아웃 구현하기 직접 db로 구현할 수 있지만 복잡하다 장고에서 제공하는 라이브러리를 사용하면 쉽게 구현이 가능하다. 로그인, 로그아웃은 큰 범위이기 때문에 pybo에서 이어서 만들지 않고, 새로운 앱으로 만들어 준다. 터미널 창에 아래 명령어를 입력해 아래와 같은 디렉터리를 만들어 준다. cd mysite django-admin startapp common 세팅 설정 common 디렉토리를 앱으로써 인식하도록 config/settings.py에 추가해 준다. 마찬가지로 common과 연결된 url을 연결해 주기 위해서 config/urls.py에 추가해 준다 common 디렉터리에 url.py가 없기 때문에 만들고 아래 코드를 넣어준다. 로그인 페이지 링크 연결 로그인 버튼을 눌렀을 때 ..

Back/Django

5. 템플릿 필터 직접 만들어 보기 + 질문에 답변 개수 표시하기

이전 결과 사진을 보면 모든 값들이 다 1~10 사이로 보이는 것을 볼 수 있음. 게시글이 페이지마다 시작 인덱스가 1, 11, 21..처럼 페이지에 맞는 번호를 갖도록 하고자 함. 규칙 현재번호 = 전체건수 - 시작인덱스 - 현재 인덱스 +1 add 뒤에 오는 변수는 - 를 붙이지 못한다 그래서 규칙을 구현하는 데 있어서 아래와 같은 코드가 불가능하다. {{ question_list.paginator.count|add:-question_list.start_index|add:-forloop.counter0|add:1 }} 장고에서 add는 있는데 sub는 없어서 직접 만들어야 한다. sub를 만들어 준 후에 아래와 같은 코드로 적용해야 한다. {{ question_list.paginator.count|s..

Back/Django

4. 게시판 페이징 기능 추가하기

게시판 페이징 기능의 필요성 게시판의 글 개수가 많아질 경우 필요함 한 페이지에 10개만 보여주는 형식으로 만듬 데이터 불리기 터미널에서 cd mysite manage.py shell 로 터미널 실행 그 후 아래 코드 입력 from pybo.models import Question from django.utils import timezone for i in range(300): q = Question(subject = "질문글 [%03d]의 제목 입니다" % i, content = "내용은 생략" , create_date = timezone.now()) q.save() views.py의 index함수 수정 from django.core.paginator import Paginator def index(r..

Back/Django

3.5 Django 흐름 정리

장고의 코드를 다 아는 것도 중요하지만 흐름을 아는 것이 가장 중요하다 1. urls 를 통해 입력이 들어온다 urls.py 파일에서 해당 url로의 입력이 들어올 경우에 어떻게 넘겨줄 것인지 지정해 준다. 2. views를 관리 views.py를 통해 url을 타고 들어온 사용자에게 보이는 영역을 어떻게 처리할 것인지 정해준다. DB에 저장하는 파트를 여기서 작성하면 된다. render를 통해 html 파일로 값을 넘겨줄 수 있다. redirect에 값을 넘겨줘서 이를 받아 호출하면 여러 페이지 반복 연결이 가능해진다. 3. views를 통해 연결된 HTML 코드를 보여준다. css, js를 link, script로 연결받을 수 있다. extends , include를 통해 반복되는 코드의 재사용성을 ..

Back/Django

3. 장고 부트스트랩으로 화면 꾸미기

static 폴더 지정 mysite밑에 static 폴더를 생성한 후 config 폴더 밑의 settings.py로 이동해 static_dirs 설정을 추가해 준다. BootStrap 다운로드 구글창에 bootstrap 다운로드를 검색한 후 아래 All release를 클릭한다. stable 한 최신 버전이 이 글을 작성하는 당시에는 v5.2였음. compiled 된 CSS와 JS를 다운로드한다. 다운 이후 압축을 풀고 bootstrap.min.css와 bootstrap.min.js를 static 폴더에 붙여 넣어 준다. question_list.html파일 수정 bootstrap.min.css 파일 적용을 위해 link를 걸어준다. 그 후 css를 적용하기 위해 HTML을 수정한다. 원래 코드 {% i..

Back/Django

2. 장고의 기본 요소 Admin, 렌더링, 동적URL매핑,DB연동

http://127.0.0.1:8000/admin/ 접속 장고는 개발 편의를 위해 Admin을 제공한다. 계정 생성 터미널창에 아래 명령어 실행 후 id password 지정 python manage.py createsuperuser 접속 화면 유저 생성 확인 관리자 페이지에 Question모델 데이터 추가 admin.py에 코드 추가 from django.contrib import admin from .models import Question # Register your models here. admin.site.register(Question) 관리자 페이지에서 Question에 접근할 수 있다. 데이터 추가도 직접 가능한 편리한 기능을 장고에서는 제공한다. 질문 상세 기능 구현하기 vies.py 파..

Back/Django

1. 장고의 기본 요소 Url, Database 연동, ORM

주소와 화면을 연결하는 URL과 뷰 pybo 앱 생성하기 터미널에서 cd mysite로 이동하여 아래 명령어 실행하여 pybo 생성 django-admin startapp pybo config/urls.py 수정하기 from django.contrib import admin from django.urls import path from pybo import views urlpatterns = [ path('admin/', admin.site.urls), path('pybo/', views.index) ] pybo/views.py 작성하기 pybo 밑의 views파일에 접근하여 index함수를 참조하는 코드이다. return문에 사용된 HttpResponse는 페이지 요청에 대한 응답을 할 때 사용하는 장고..

Back/Django

0. 장고 개발 준비

// 점프 투 장고 책을 정리한 내용입니다. 장고의 장점 튼튼한 웹 프레임워크이다. 기본적으로 보안 공격을 막아준다 웹 프로그램을 쉽고 빠르게 만들어 주는 웹 프레임워크다 여러 기능이 준비되어 있다. ORM(프로그래밍 언어로 DB 데이터 저장 가능) 과 같은 필요로 하는 웹 프로그램 개발을 위한 도구와 기능이 대부분 준비되어 있다. 장고 설치 저는 python3.8.10 버전으로 pycharm(유료버전)의 가상환경으로 사용하였습니다. 터미널에 아래 명령어 입력. pip install django 장고 설정을 잡아주기 위해 터미널에 아래 명령어 입력 장고는 config 밑의 settings.py 파일에서 세팅을 잡아준다. django-admin startproject config . 서버 실행 명령 pyt..

잘잔디
'Back/Django' 카테고리의 글 목록