분류 전체보기 102

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에 저장되는 것이 아니어..

WIL_네 번째 주

이번주는 Algorithm과 Django에 대한 공부를 했다. Facts 매일 아침마다 1시간 씩 algorithm 문제를 3문제 정도씩 풀었다. 또한 Django 기초 강의를 두 가지나 받았는데, 두 강의 모두 Django의 기본 동작 프로세스와 CRUD를 어떻게 할 수 있는 지 배웠다. 그리고 협업을 위한 Git 사용 방법을 연습했다. Feelings Algorithm 문제를 꾸준히 풀다 보니깐 for과 data type 부분에 대해 조금은 익숙해진 느낌이다. 또한 이번에 Django를 처음 사용하게 되었는데, 많은 기본 기능들이 이미 구현이 되어있어서 그런지 편리한 framework라는 생각이 들었다. MVT model을 사용하기 때문에 기능과 역할에 따라 파일들이 구분되어 있는데, 이 부분에 익숙..

TIL_Django 기본 project

Project 생성 새로운 Django 기초 강의를 하나 더 듣기 시작했다. 전에는 pycharm IDE를 사용했지만 이번에는 VSCode를 쓴다. 폴더 생성 후, git bash에서 가상환경(별도의 python 공간)을 만들어 준다. python -m venv venv 가상환경을 켜준다. source venv/Scripts/activate * pip list: 가상환경에 설치된 파일들 list 볼 때 deactivate: 가상환경 끌 때 project 마다 venv를 각각 관리 Github 연결 git 사용을 하기 위해 git bash에 command를 입력한다. git init *ls: 현재 위치에서의 파일들 보기 ls -a: 현재 위치에서의 모든 파일들 보기 rm -rf .git: .git file..

TIL_Django로 Project 만들기

간단한 SNS를 만드는 것이 목표이다. 회원가입, 로그인, 로그아웃과 같은 사용자 관리, 글쓰기 기능, 친구 팔로워 기능 등 간단한 SNS이다. 강의를 보았지만 조금 헷갈리는 부분이 있어서 전반적인 과정을 정리 해 보았다. 프로젝트의 기능을 크게 'user'과 'tweet'으로 나눌 수 있어서 두 개의 app을 만들었다. terminal에서 다음과 같이 입력한다. django-admin startapp user django-admin startapp tweet 생성한 앱을 관리 할 수 있게 Django에게 알려줘야 한다. project folder의 'settings.py'를 아래와 같이 수정한다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib...

TIL_Python의 framework, Django

Framework는 개발을 도와주는 하나의 틀과 같다. 따라서 결과물을 일정한 형태로 만들 수 있다. 앞으로 쓰게 될 Django의 작동 방식을 이해하는 것이 필요할 것 같아서 정리를 해보았다. Python의 framework에는 Django, flask, pyramid 등이 있다. Django는 거대한 framework이다. 따라서 많은 utility들이 이미 만들어져 있고, DB, login, Admin, password 암호화 등 많은 부분들이 이미 제공이 된다. 또한 community와 document가 잘 되어있어 편리하다. MVT pattern은 Django가 일하는 방식이다. M(Model) database의 model(ORM) 저장되고 사용되는 data의 형태 V(View) 실질적으로 프로..

TIL_Django 시작

오늘부터 Django를 시작했다. 우선 pycharm IDE(professional)로 새 프로젝트를 생성하고 Django framework를 사용했다. 그리고 Django server를 켜기 위해 Run! 그런데 다음과 같은 에러가 났다. django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 뭔가 기본적인 setting이 잘못 된 것 ..

LIST