본문 바로가기
관리자

Programming-[Backend]

(421)
Django로 Pinterest 따라 만들기-7. Update, DeleteView 구현 1. UpdateView UpdateView 작성 updateView는 createView와 거의 동일하다. views.py 일부 form_class는 UserCreationView를 그대로 이요하였다. class AccountUpdateView(UpdateView): model = User context_object_name = 'target_user' form_class = UserCreationForm success_url = reverse_lazy('accountapp:hello_world') template_name = 'accountapp/update.html' update.html {% url %} 내부에 pk=user.pk로 로그인한 사용자 본인의 정보를 수정할 수 있도록 하였다. {% e..
Django로 Pinterest 따라 만들기-6. BootStrap 추가, DetailView 구현 1. BootStrap 추가 디자인을 수정하기 위해서 BootStrap을 추가한다. django에는 Django-Bootstrap4 라는 전용 라이브러리가 있다. 아래 링크에서 확인할 수 있다. https://django-bootstrap4.readthedocs.io/en/latest/index.html 우선 설치를 위해서 Installation 페이지에 적혀있는대로 아래 명령어를 터미널에 입력한다. pip install django-bootstrap4 그리고 설치가 됬다는 것을 알려주기 위해 settings.py의 INSTALLED_APPS에 bootstrap4를 추가한다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'djang..
Django로 Pinterest 따라 만들기-5. AccountApp : CBV, CreateView, Login, reverse_lazy 이제 Pinterest 서비스를 구현하기 위한 Account, Authentication, Profile, Article, Comment 등의 app 객체와 서비스를 만든다. 가장 기초가 되는 회원 정보인 AccountApp에서부터 시작한다. 1. 함수형 View(FBV)와 클래스형 View(CBV)의 차이 기존 HelloWorld 객체를 관리하는 View는 아래와 같이 함수로 정의하고, if 분기문을 통해서 CRUD, HTTP Method를 구분했었다. def hello_world(request): if request.method == 'POST': # 처리 로직 생략 return HttpResponseRedirect(reverse('accountapp:hello_world')) else: return..
Django로 Pinterest 따라 만들기-4. Model 생성, HTTP 통신 연습, Run Configuration 설정 1. Model 생성 model 생성은 각 패키지의 models.py 파일에서 설정할 수 있다. 만들어두었던 accoutapp의 models.py에 아래와 같이 작성해본다. accountapp/models.py from django.db import models # Create your models here. class HelloWorld(models.Model): text = models.CharField(max_length=255, null=False) 형태를 보면 DB에서 속성값을 정의하듯이 model을 정의한다. models.CharField로 문자열이 들어가는 필드를 정의하는데, 이름은 text, 길이는 255, nullable = false로 설정해주었다. Migrations 'python m..
Django로 Pinterest 따라 만들기-3. static, CSS 설정 1.HTML에 CSS 작성 화면을 꾸며주기 위해서 HTML의 태그들에 style을 적용한다. BOOTSTRAP 및 Google Font도 link로 적용한다. header.html Pragmatic nav1 nav2 nav3 nav4 head.html footer.html 공지사항 제휴문의 서비스 소개 Pragmatic 2. CSS static 파일로 변경하기 static 형태의 css 파일로 분리해내어 편리하게 관리할 수 있도록 변경한다. HTML의 태그들에 class를 부여한다. footer.html 공지사항 | 제휴문의 | 서비스 소개 Pragmatic header.html Pragmatic nav1 nav2 nav3 nav4 이렇게 적용 후, 루트 디렉토리/static/ 경로로 디렉토리를 생성하고..
Django로 Pinterest 따라 만들기-2.git 관리, HTML 구조 생성(include, extends, block) 1. Git 세팅 git 연결은 대부분 아는거라, 그냥 개인적으로 연결만 하자. 다만, django 프로젝트에서 gitignore해야되는 파일들의 기본적인 리스트에 대해서 알아놓자. gitignore 프로젝트 최상단에 .gitignore 파일을 만들고, 아래 링크의 github에 올라와있는 gitignore 리스트를 붙여넣기 하면된다! https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 추가로 가상환경 구성요소인 venv는 git에 연동할 필요가 없으므로 위 그림처럼 추가해준다. django-environ : 환경 설정 정보 숨기고, gitignore에 추가하기 django 프로젝트는 프로젝트마다 고유의 SECRET_KEY 값..
Django로 Pinterest 따라 만들기-1.프로젝트 생성 및 세팅, 기본 구조 만들어보기 인프런 강의를 정리하는 글이다. 인스타그램처럼 이미지를 보여주고, 사용자들과 소통할 수 있는 SNS 서비스인 Pinterest를 따라만들면서 django 프레임워크를 학습한다. Front는 HTML, CSS, JavaScript를 사용하고, Back은 MariaDB, NGINX, django, docker를 사용한다. 마지막으로 AWS를 이용하여 배포까지 해본다. 1. 프로젝트 생성 및 설치 프로젝트 생성, 기본 세팅 pycharm IDE를 이용하여 Pure python 프로젝트를 생성한다. 만약 Pure Python이 아니라 Django로 프로젝트를 생성한다면 아래 과정을 거칠 필요가 없다. Pycharm에서 알아서 django startproject와 가상환경 설정을 해준다. --- 이 프로젝트는 d..
파이썬 기본 - 4. 입력과 출력, 클래스, 모듈, 패키지, 예외처리, 내장/외장 함수 1. 입력 input() 파이썬에서 값을 입력받을 수 있는 내장함수는 input()이다. number = input("숫자를 입력하세요: ") print(number) open(), write(), close() 파일을 생성하고, 입력하고, 저장하고, 닫는 함수는 각각 open(), write(), close()이다. open 함수의 두번째 인자값은 파일을 열고 입력 모드를 결정하는 인자인데, 'w'는 입력모드, 'r'은 읽기모드, 'a'는 파일의 마지막에 새로운 내용을 추가할 때 사용하는 추가모드이다. 파일은 open을 했으면 항상 close를 해주어야 문제가 발생하지 않는다. 다만 두번째 코드와 같이 with...as 구문을 사용하면 따로 close를 하지 않아도 된다. file = open("C:/..