PYTHON 56

TIL_Django Project, Absolute Path와 Relative Path

가끔 이미지 파일을 variable에 저장한다던가 이미지 파일을 불러와서 client에 보여준다거나 할 때 그 이미지 파일의 경로를 컴퓨터에 알려줘야 할 때가 있다. 파일의 경로를 알려줄 때 두 가지 경로가 있는데 오늘은 이 두 경로에 대한 것을 정리해 보았다. Absolute Path(절대경로) 나의 현재 위치가 어디에 있던 absolute path를 알면 이 파일의 위치를 알 수가 있다. 이름 그대로 절대적으로 변하지 않는 경로이다. 주소처럼 root directory로 시작해서 파일 전체의 이름을 포함한다. Relative Path(상대경로) 현재 작업 directory를 기준으로 file 또는 folder의 위치를 나타내는 방법이다. Absolute path로 표현했을 때 path가 길어지는 것을..

TIL_Visual Studio Code 저장 시 자동 formatting이 에러가 날 때

여태까지 아무 이상 없이 잘 쓰던 코드 저장 시 html file들을 자동으로 formatting 해주던 기능이 갑자기 에러가 났다. 코드를 저장할 때 자동으로 코드의 적절한 indentation을 해주던 기능이었는데, 무엇 때문인지 갑자기 이상하게 formatting이 되었다. 그러면서 html 파일들에 전에는 없었던 빨간줄이 잔뜩 생겼다. 마침 매니저님께서 해결 방법 가이드를 주셔서 아래와 같은 방법으로 했더니 문제가 해결되었다. Ctrl + < 를 이용해 settings로 들어간다. 검색에 'format'을 친다. 'Format On Save'에 체크를 해제하여 기능을 꺼준다. 다행이도 Ctrl + s를 이용해 코드를 저장해도 이제는 html file에 자동 formatting이 일어나지 않아 에러..

TIL_Django Project: email 인증이란

어제 팀원 중 한 명이 개인적인 문제로 더이상 캠프를 할 수 없게 되어 그 팀원의 부분을 내가 맡아서 하게 되었다. 회원 가입 기능 구현 부분이다. 기본적으로 username, nickname, email, password, profile photo로 회원 가입을 하고, 로그인과 로그아웃 기능도 포함된다. 수업 시간에 배웠던 내용이라서 위의 세 가지 페이지 기능 구현은 금방 할 수 있었다. 만약 시간이 된다면 이메일 인증을 포함하자고 팀원들과 기획할 때 얘기가 나왔었는데, 구현을 해볼까 하고 생각을 해보니 갑자기 이런 의문이 들었다. '이메일 인증이 왜 필요한거지?' 구현을 하기에 앞서서 이메일 인증의 필요성에 대한 조사를 좀 해보았다. Email 인증이란? 요즘 많은 사이트에서 회원가입을 할 때 이메일..

TIL_Django Project에서 회원 가입 페이지

Django에서 회원 가입 페이지를 만들 때에는 일반적인 object 생성과는 다르게 적용시켜 주어야 한다. 비밀번호를 저장할 때 hashing이 되어 저장되도록 해야 보안에 안전하게 DB에 저장할 수가 있다. 따라서 회원 가입 페이지를 만들 때, 비밀 번호를 저장하거나 나중에 변경할 때 모두 특별한 method를 이용하여 코드를 작성해야 한다. 회원 가입 정보 생성 시, from django.contrib.auth.models import User user = User.objects.create_user('apple', 'apple@gamil.com', 'applepassword') #creste_user method 사용하여 회원 정보 save 회원 password 바꿀 때, from django.c..

WIL_다섯 번째 주

다섯 번째 주도 마무리 되었다. Facts Django 기초 강의를 듣고 강의 내용을 바탕으로 개인 과제를 제출했다. 금요일 부터 새로운 팀 프로젝트를 시작했다. Django는 기본적으로 models.py, urls.py, views.py로 돌아가고 settings.py에 앱 등록과 필요할 때 directory의 root를 잘 입력해야 한다. CRUD와 회원 가입 기능을 어떻게 만드는지 배웠다. Feelings Django는 여러 종류의 파일들로 구성되어 있고, 이 파일들을 요리조리 넘나들며 코드를 작성해야 하기 때문에 처음에는 좀 복잡한 느낌이 있었다. 그래서 CRUD와 회원가입 기능 구현이 자연스러울 때까지 복습을 하기로 마음먹었다. 복습을 하고 잘 모르겠는 부분들은 구글링을 통해 공부를 하면서 몇 ..

TIL_Django Project에서 related_name이란

models.py에서 class와 attributes가 정의되어 있다. class Todo(models.Model): content = models.TextField() is_done = models.BooleanField(default=False) class Comment(models.Model): todo = models.ForeignKey(Todo, on_delete=models.CASCADE) content = models.TextField() 한 개의 Todo Object는 여러 개의 Comment Object들을 가질 수 있다. todo1 = Todo.objects.get(id =1) todo1.comment.all() #Error todo1 object 안에는 comment라는 attribu..

Django Project에서 render와 redirect의 차이점

Django로 views.py를 작성 하다보면 상황에 따라 render와 redirect를 쓸 때가 있다. Django를 처음 배우다 보니 두 가지의 쓰임새가 비슷한 것도 같아 어떤 상황에서 어떤 것을 써야 할 지 헷갈렸다. 그래서 render와 redirect의 차이점에 대해 정리를 해 보았다. render html file로 이동시켜 준다. render은 아래와 같은 parameter들을 가진다. 여기서 request와 template_name은 반드시 넣어 주어야 한다. render(request, template_name, context=None, content_type=None, status=None, using=None) redirect url로 이동한다. redirect는 아래와 같은 par..

TIL_Django Project에서 DetailPage 만들기

Django로 url을 정의하고 views.py에서 해당하는 method를 실행시키면 return 값에 따라 원하는 페이지를 보여줄 수 있다. 그런데 detailpage(상세페이지) 같은 경우, mainpage에서 선택한 해당 detailpage가 보여져야 하기 때문에 특정한 url과 특정한 content가 보여지는 detailpage 이어야 한다. 이를 구현하기 위해 아래와 같은 방법을 생각 해 볼 수 있다. mainpage에서 여러 개의 list가 보여지는 상황이라면, 아래의 코드와 같이 'todo'라는 variable 안에 해당 list의 data 값이 있다. 여기서 todos는 views.py에서 GET method로 DB에서 해당 data를 불러온 것이다. Todo의 Index 입니다 Write..

TIL_Django Project에서 ORM(Object Relational Mapping)

Django에서 새로운 app을 생성하면 자동으로 models.py 파일이 생성된다. settings.py에서 app을 등록해 주고, models.py에서 class를 작성하여 object를 정의하고 나면, Django에서 제공하는 ORM Method를 사용하여 DB에 저장하고 데이터에 쉽게 접근 할 수가 있다. 이때, ORM이 없었다면 DB에 접근할 때 SQL을 작성해야 하기 때문에 좀 복잡해 진다. 여기서 ORM이 무엇인지 좀 더 조사해 보았다. ORM(Object Relational Mapping)은 Object(객체)와 Relational Database(관계형 데이터베이스)를 Mapping(이어주는) 해주는 technique이다. 생성된 object의 attributes를 field로 하여 자동..

TIL_Django Project 중 Cookie와 Session 정리

Django 기초강의 내용 중 Cookie와 Session이 무엇인지 알아야 하는 부분이 있었다. 평소에 들어봤던 단어지만 정확히 어떤 것인지 잘 몰라 두 용어에 대한 정리를 했다. 쿠키(Cookie) client 측에서 상태 정보를 저장하는 작은 데이터 조각. 주로 브라우저에 저장되고, server에서 생성, 관리 된다. 주로 사용자를 식별하고 상태 정보를 유지하기 위해 사용. 보안을 강화하기 위해 암호화된 쿠키를 사용할 수 있다. session cookie는 브라우저가 닫힐 때 삭제, 지속적인 cookie는 설정된 만료 날짜까지 유지 된다. ex)사용자 login 유지 세션(Session) server 측에서 사용자의 상태 정보를 저장하는 메커니즘. session은 client에 저장되는 것이 아니어..

LIST