본문 바로가기

장고(DJango)

(17)
(작성중) 장고 mysql python에서 mysql과 통신하기 위한 패키지 설치 pip install mysqlclient settings.py 수정 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': str(BASE_DIR / 'db.mysql'), 'USER': 'dhdgn', 'PASSWORD': '12341234', 'HOST': 'localhost', 'PORT': '3306', } }
[Django] 장고 기본 사용법 앱 생성 python manage.py startapp photo settings.py의 INSTALLED_APPS에 photo 추가. 작성 순서는 본인이 편한대로 하면 된다. 필자는 다음과 같은 순서로 작성해보겠다. 1. model 2. views 3. template 4. urls photo/models.py from django.db import models class Photo(models.Model): title = models.CharField(max_length=50) author = models.CharField(max_length=50) image = models.CharField(max_length=200) description = models.TextField() price = mod..
[Django] 장고 HTML URL 경로 설정하는 방법 Django를 이용해 웹 사이트를 제작하면 여러 페이지가 나오게 된다. 이때 다른 페이지로 가기 위해 HTML 문서에서는 많은 하이퍼 링크를 만들게 되는데, 간단하게 절대경로를 만들어 넣을 수 있다. gogo 물론! 이렇게 해도 되지만, 우리는 웹을 제작하면서 경로 이름을 바꾸는 경우가 종종 있다. 이 때 하나의 경로 이름을 바꾸게 된다면 이 경로에 하이퍼링크를 걸고 있는 모든 HTML 문서를 수정해줘야 하는 불편함이 발생한다. 이런 문서들을 찾기도 힘들고.. 시간도 많이 버리게 된다. 이런 문제를 해결하기 위해 등장한 것이 바로 url 탬플릿 태그 이다! urls.py에 다음과 같이 경로를 줄때 옵션으로 이름공간을 정해 줄 수 있다. from django.urls import path from . im..
(작성중) 장고 JWT 이용하여 회원가입, 로그인 기능 구현 (Django JWT Token) JWT(JSON Web Token)란? http 프로토콜을 통해 사용자는 웹사이트를 이용한다. 그런데 이 http 프로토콜의 특징 중 하나가 바로 stateless, 즉 상태 유지를 하지 않는다는 것이다. 이렇게 되면 사용자는 매번 사이트의 다른 페이지에 접근할 때마다 로그인을 해주어야 하는데 등의 큰 불편함이 있다. 예를 들어 네이버에서 로그인을 하고 블로그 페이지를 누르면 로그아웃이 되어 다시 로그인을 해주어야 하는 등의 문제가 발생한다. 이와 같은 문제들을 해결하기 위해 세션, 쿠키, 토큰 등의 기능을 이용하는 것이다. 관련한 자세한 내용은 다음 포스팅을 참조하길 바란다. https://hooeverything.tistory.com/12 여러 가지 방법 중 관리가 편하고, 서버 측 자원이 많이 소모..
[Django] 장고 templates, static 폴더 관리 (html, css, javascript) 보통 프론트엔드의 경우는 react, vue.js 와 같은 라이브러리를 이용하여 관리하기도 하지만 간단한 웹사이트 제작시에는 장고 자체 프로젝트, 앱 폴더 내에 간단하게 작성하게 된다. 이때 폴더들의 관리 방법에 대해 알아보자. 1. templates (HTML) templates 폴더 안에는 html 문서를 저장하고 관리한다. settings.py의 TEMPLATES 안에 HTML 문서를 찾는 temlpates 폴더 위치가 정의되어 있다. 기본 설정의 경우 자동으로 app 폴더 내의 templates 폴더를 찾게 된다. 만약 프로젝트 내의 모든 html 문서를 한번에 관리하고 싶다면 경로를 바꿔서 한 폴더에 몰아 넣는것도 가능하다. 주의할 점이 한가지 있다면, 장고는 html 문서를 검색할 시 모든 앱..
[Django] 장고 테스트케이스 만들기(Django Test Case) 장고를 사용할 때 내가 만든 코드가 원하는대로 동작하는지 확인 할 필요가 있다. 코드가 잘 동작하는지 확인하기 위해서 매번 서버를 실행하며 입력값을 넣고,, 출력이 무엇인지 확인할 수도 있지만, 이렇게 테스트를 진행하면 불편하고, 예상치 못한 예외상황이 발생할 수(?)도 있다. 테스트를 코드로 작성하여 자동화 해두면, 사용하기도 편하고 각종 경우의 수를 만들기도 편하다. 작성 방법에 대해 알아보자. 장고에서 앱을 새로 만들면 tests.py 라는 파일이 생성된다. 이 파일에 테스트 코드를 작성하면 해당하는 앱안에 만들어둔 views.py나 models.py등이 제대로 작동되는지 확인 할 수 있다. from django.urls import reverse from django.test import Test..
[Django] 장고 모델, 매개변수(Django Model FIelds and parameters) 장고 모델 ​ AutoField class AutoField(**options) 자동으로 증가하는 정수 필드, 보통 사용하지 않는다. 보통 id 필드는 pk로 자동으로 만들어 진다. ​ BigAutoField class BigAutoField(**options) AutoField 보다 비트수가 더 많다. 64 비트 정수. ​ BigIntegerField class BigIntegerField(**options) IntegerField 보다 큰 정수 필드 64 비트 정수. ​ BinaryField class BinaryField(max_length=None, **options) 바이너리 데이터를 저장하는 필드. bytes, bytearray, memoryview 가 저장 될 수 있다. ​ BooleanFi..
[Django] 장고 제네릭 템플릿뷰(Django generic TemplateView) from django.views import generic 장고에서 쓰이는 제네릭 뷰 중 TemplateView 에 대해 알아보자. ​ CBV형식으로 views 파일을 작성할 경우 다양한 제네릭 뷰에 대한 사용법을 알고 있어야한다. 코드를 가능한 간결하게 작성할 수 있다. 코드의 재사용률을 높일 수 있다. ​에러 핸들링 에는 FBV를 사용한다. 템플릿 뷰는 다음과 같이 상속하여 사용할 수 있다. views.py class IndexView(generic.TemplateView): template_name = "plagiarism/index.html" urls.py from django.urls import path from myapp.views import IndexView urlpatterns = [ ..