핀터레스트의 레이아웃을 따온 웹서비스를 만드는 것.프론트엔드, 백엔드, 웹 배포 과정을 담을 예정.Javascript , HTML , CSS 등등 사용 예정.웹 페이지 , 제목 , 좋아요 , 댓글 수 , 누가 썼는지, 어떤 프로젝트에서 글을 썼는지 , 프로젝트를 개설할

JavascriptHTMLCSSmaria DBNGINXDjangoDocker - 배포에 있어서 가장 중요한 기술 중 하나Account Article Project Comment\-> 각 앱들 마다 js,html,css 가 존재.VULTR 라는 실제 서버를 빌려서 구축한

chan 이라는 이름을 가진 project 를 만든 결과.euichan 이라는 가상환경에서 django를 설치.

MVB 개발 패턴 \- M : Model \- V : View \- C : Controller -> T: Template M , V , C 가 나누어서 각자의 Framework 를 구축 django에서 데이터베이스와 통신을 하게 해주는 편리한 도구와

accountapp이라는 앱 생성.euichan이라는 프로젝트에서 settings.py 폴더 안에 INSTALLED_APPS 칸에 만든 앱을 명시.hello world를 출력하는 코드를 작성하기 위해 함수를 정의해서 코드를 수행한다.여기서, 인자값은 request 이고

git 이란 버전관리 시스템error 발생시 git이 있다면 rollback을 해서 바로 그 전 버전으로 돌아갈 수 있다.기존의 main branch에서 추가적인 기능을 가진 버전을 만들고 싶을때 사용기존의 branch에 전혀 지장을 주지 않는다.기존의 branch와
gitignore github에서 제공하는 gitignore 가져오기 가상환경인 venv는 추적을 하지 않는다는 의미의 "venv /" 코드 작성 secret key 숨기기 
H : HyperT : TextM : MarkupL : Languageextends : 미리 가져온 html을 채워 나가는 형식 include : 만들고 있는 html 파일에 조그만 조각 같은 것을 가져와 템플릿에 넣는 형식 \-> 전체적인 구조 , extends와 i

Templates 폴더에 head.html 파일을 추가하여 head 부분에 해당하는 코드를 작성할 준비를 한다.head.html 부분의 구성base.html의 구성 include 기능을 사용하여 head.html 부분을 포함한다는 의미를 지정한다.\*\* Tip : 똑

큰 제목인 Euichan 을 h1 태그로 집어넣고네비게이션 역할을 하는 nav1 ~ nav4를 각각의 span 태그로 넣는다.header 부분을 가운데 정렬 해주기 위해 페이지의 개발자 도구에서 '스타일' 부분에서 코드를 지정해주는 과정개발자도구 에서 진행한 가운데정렬

디자인 파일만 따로 분리보통 HTML파일은 뼈대만 남기고 디자인적 요소는 CSS 파일에 따로 설정.staticfiles 라는 추가적인 폴더에 staticfile들을 다 모으겠다 라는 식으로 작동.euichan 디렉토리에 새로운 디렉토리인 static에 base.css

BlockInlineInline-blockNone한 블럭의 모든 너비를 다 가져감.children이 여러개면 아래로 쌓임글씨의 높이만큼만 한 줄내에 구축.children이 가능한 한 오른쪽으로 쌓임.block인데도 불구하고 inline처럼 오른쪽으로 children이

123 : css 파일에 설정하는 style 태그html의 각 태그에 직접 적용하는 style사진 1번과 같이 style을 따로 지정하는 경우css 파일에 지정하는 styledefault는 따로 지정해주지 않는 한 display=block 설정이다inline 요소를 여

django 와 database와의 통신개념accountapp 에서 model.py 에서의 class 작성python manage.py migrations 를 터미널에 작성하게 되면 HelloWorld라는 모델을 만들었다는 결과를 얻을 수 있음.Tip : model에서

GET : 보통 조회를 하기 위해서 요청을 보냄 (새로운 데이터를 만들 때 보다 더 적은 데이터가 필요)추가적인 parameter를 넣어줌. ? 는 parameter가 시작한다는 것POST : 보통 서버내에 정보를 만들거나 수정할 때 사용Post에 Body를 넣어서 보

html파일에 form 을 만들어주는 과정서버한테 보내는 요청 명세서 같은 느낌. 어떤 글이나 파일을 첨부한다거나 그 모든 것들이 POST 바디 안에 들어감. 그 데이터들이 이 form 안에 다 들어감.버튼 형식으로 POST 버튼을 만듦.장고를 이용하여 post 요청을

Send POST dataReceive POST dataSave DBinput 태그에 text 타입의 입력값을 받을 수 있는 구조를 만들어줌.views.py 파일에서 입력받은 값을 POST 했을 때 그 값을 출력하는 것을 수행하는 코드를 작성결과화면POST할 입력값을

GET과 POST에 DB에 저장된 데이터들의 리스트들을 가져오는 코드받아온 object 그 자체for 문을 사용해서 list 에 있는 요소들을 하나씩 확인하는 코드 및 결과화면이다.현재 상황 : 웹페이지에서 F5 새로고침을 누르면 계속해서 같은 데이터들이 반복돼서 쌓임

디버깅 설정 pycharm 에서 "run -> Edit configuration -> Template -> python" Script path 지정 : euichan -> venv -> script parameters 지정 : runserver 특정 파일 실행 -

Form에서 helloworld 요청을 보냄 (누구나)\-> 아무나 요청을 보낼 수 있기 때문에앞으로 인증시스템 (보안)을 구축할 예정이다.즉, 우리는 Account (계정)이 필요하다.Accountapp 을 만들고 있었다.\-필요한 기능- 가입 (로그인 기능 포함)정

지금까지 django에서 Account 앱과 관련된 작업들을 수행하고 있다. CRUD 라는 사이클에 맞춰서 회원가입, 정보가입 , 수정 ,탈퇴 등등을 만들어볼 예정이다. 로그인 , 로그아웃 기능도 포함. AccountCreateView라는 class 를 만들고
Login view, Logout view 생성 login 과 logout 각각의 urls 설정 login.html 과 logout.html 생성 login.html 설정 서버 구동 후 account/login 화면 회원가입 후 login 단계 앞서 accou

터미널에 pip install bootstrap 4 를 입력하여 설치하고 settings.py에 등록한다.bootstrap4를 사용하기 위해서맨 위에 load를 실행하고기존의 form 부분을 수정해서 다음과 같은 login 화면을 얻을 수 있다.버튼을 dark roun

views.py 에 AccountDetailView 라는 class 를 생성해준다.template_name 에 detail.html을 사용하기 때문에detail.html을 생성해준다.target_user 를 그냥 user로 설정할 경우 특정 pk를 가진 user에게 접

정보를 변경하기 위한 용도로 구현되는 Update View 이다.먼저 AccountUpdateView 라는 class 를 선언한다.내용은 DetailView 와 동일하다.다른것들과 마찬가지로 url을 등록한다.그다음 update.html 파일을 생성한다.update.h
DeleteView를 통한 회원 탈퇴 구현 AccountDeleteView class 생성 다시 돌아갈 url을 login으로 향하게 한다. Path 등록 delete.html 생성 form은 필요없고 create.html과 틀을 동일하게 작성한다. 제출 버

기존에 UpdateView와 DeleteView 에는 context_object_name을 지정하지 않았는데DetailView 와 마찬가지로 context_object_name = 'target_user' 를 지정해준다.또한 ,delete.html 과 update.ht

만약 function마다 시작한 시간과 끝난 시간을 확인하고 싶을 때print()구문 앞뒤에다가 시간을 출력해주게 된다.하지만 이렇게 한다면 너무 일이 반복적으로 발생하게 된다. 즉, 가독성 떨어짐.이럴 때 Decorator를 사용한다.Decorator를 사용하지 않은

서버 실행 후 장고 admin이라는 페이지에 접속admin 계정을 제외하고 나머지 삭제 가능settings.py 에서 MEDIA_URL 과 MEDIA_ROOT 를 설정해준다.MEDIA_URL 이란 것은 주소창에 MEDIA 이하의 경로로 접근을 해야지 실제 MEDIA 파

accountapp 과 Profile 계정을 1대1로 매칭시켜줄 것이다.Profile 에는 3가지가 들어간다.이미지닉네임메시지Delete View 와 Detail View 를 사용하지 않을 예정python manage.py startapp profileapp코드를 이용

python manage.py makemigrations 를 입력하여 모델을 DB에 반영시켜준다.profileapp 에서 templates 폴더를 작성하고 거기서 또 profileapp 폴더를 작성한 뒤accountapp 에서 사용한 create.html을 복사해서 사

ProfileCreateView와 거의 동일한 UpdateViewurl path를 등록한다. 여기서 update에는 int:pk 를 명시한다. <a href="{% url 'profileapp:update' pk=target_user.profile.pk %}">

success_url 이 hello_world로 되어 있는데우리의 profile을 수정하고 나서 완료가 됐으면 우리의 계정페이지로 가는게 자연스럽다따라서 수정하기 위해서success_url = reverse_lazy('accountapp:detail' 이렇게 수정할 것

javascripts 라이브러리 MagicGrid 사용임의의 높이를 가진 카드형 layout 자동배치settings.py 에서 articleapp을 쓰겠다고 명시url 등록templates 폴더를 만들고 그 안에 articleapp 폴더에 list.html 생성다음과

DB에서 created_at 컬럼이 다 null 로 저장이 되어 있는 문제발생.언제 게시글을 작성했는지에 대한 정보가 들어가야 하는 것.코드 추가.정상적으로 data가 저장됨.

created_at은 언제 만들어진것 인지에 대한 정보후, python manage.py makemigrations 진행 , python manage.py migrate 진행\-> DB에 반영create.html 작성detail.html 작성Create Article

지금까지 단일 객체에 대한 것을 다뤘는데 우리는 여러객체를 다룰 수 있는 View가 필요하다.\-> ListView , 장고가 기본적으로 제공.페이지화 시키는 것.page의 객체를 생성한다는 느낌어떤 page에서 검색할 때 1,2,3,4,5 처럼 페이지가 있는데 그것을

CommentApp - 댓글앱 Mixin CreateView에서는 form이 있지만 DetailView 에서는 없고 object가 존재 DetailView 에서 위에는 content , 밑에는 comment Form이 들어가야함. 이와같이 다중상속 형식으로 구현

로그아웃 시 delete 사라짐 구현 완료

python manage.py runserver서버구동 할 때 python manage.py runserver 127.0.0.1:8000 와 똑같이 작동우리의 컴퓨터에서만 들어갈 수 있음핸드폰으로는 들어갈 수 없어서 바꿔줘야함python manage.py runser
1.python manage.py startapp projectapp 을 통한 projectapp 생성main setting 에서 해당 앱을 사용한다고 명시.urls.py에서 path를 등록한다.해당 projectapp에서 urls.py 파일을 생성하고 forms.p
article 을 작성하고 이를 project에 연결하는 작업을 수행해야 하는데 이 때 MultipleObjectMixin 사용.일단 articleapp 에서의 models.py 와 forms.py를 수정해야한다.(project와의 연결을 위함)models.py에서는
구독 역할을 하는 Viewsubscribeapp 생성views.py 작성urls.py 작성models.py 작성projectapp views.py 수정projectapp 의 detail.html 수정
Model_objects.filter(pk= xxx, user=xxx)와 같이 filter를 사용했었다.여기에서 pk와 user 값들을 넘겨주게 되는데, AND function이다.2개의 조건을 동시에 만족해야하는 AND function이다.OR function을 사용
우리가 서버를 작동했을 때 특정 url로 입장을 해야만 페이지가 나왔었다.따라서 서버를 킬 때 바로 Article list 들이 보이게 하기 위해서 urls.py를 수정한다.path('', ArticleListView.as_view(), name='home'),home