
23/3/28 시작
JavaScriptHTMLCSSMariaDBNGINX : 서버 소프트웨어(클라이언트에서 받은 요청을 서버에서 처리) - 배포를 위한django docker : 배포에 있어서 가장 중요한 기술중 하나. 장고 내부에는 여러가지 앱이 동시에 생성이 될 것이다.하나의 앱에다가
Pycharm community 버전 다운로드파이참 다운로드(https://www.jetbrains.com/ko-kr/pycharm/download/기본적인 파이썬은 설치가 되어있어야 한다.New Project -> 프로젝트 이름(test123) -> crea
장고의 개발 패턴에 대해서 알아보자장고에 있어서 가장 중여한것은 MVC 개발 패턴이다.정확하게 말하면 MVC 는 애플에서 만들었던 개발 패턴중 하나의 방식이고MVC 약자Model ViewController Template이런식으로 나누어진 개발 패턴을 가진다모델은 장고
이러한 앱들을 하나씩 만들어볼것이다.계정과 관련된 Account App 먼저 생성터미널 -> python manage.py startapp \[원하는 app 이름]: 해당 이름으로 앱이 새로 만들어진다.accountapp 이라는 새로운 폴더가 생성되었다.메인 app
git 이라는 버전 관리 시스템Version Control이전 버전에 문제 발생시 롤백 가능main branch기존에 있었던 메인 버전의 영향을 주지 않으면서 동시에 개발을 하고싶을 때 추가적인 brach 를 새로 만들어서 거기서 원하는 만큼 개발을 할 수 있다.마지막
pragmatic 폴더에 git 을 활성화 시키면 이 폴더 내부에 안에 있는 모든 파일을 다 추적하게 됨.파이참 내부에 설정파일이라던지 추적하지 않아도 되는 불필요한 파일들, venv 폴더 같은 경우는 가상환경을 만들면서 생긴 파일인데 이게 어떻게 변하는지는 중요하지
이전 강의에 더불어 추적 방지 구문 추가./Users/사용자/PycharmProjects/pragmatic/accountapp/\_\_pycache\_\_/Users/사용자/PycharmProjects/pragmatic/pragmatic/\_\_pycache\_\_두
만들고자 하는 레이아웃 형태머리, 몸통, 바닥 3가지 부분으로 나눌 수 있다.3개의 뼈대를 만드는 과정include 를 이용해서 head 부분이 나중에는 여러가지가 들어갈것인데 (링크 삽입, 소스 가져오기 등) 뼈대에서 다 보기는 난잡하기 때문에 include 구문을
헤더 구성개발자 도구를 열고 Element 의 Style 태그를 크롬상에서 임시로 작성할 수 있다.text-align:center; 다음과 같이 중앙 정렬이 된것을 확인할 수 있다.이와 같은 방식으로 footer 도 적용footer 에서 style 부분을 지우고 다음과
CSS 의 파일을 분리하는 작업을 할것이다.분리전 static 관한 설정을 해주어야함.자주 변경되지 않은 파일들을 프로젝트 앱별로 관리settings.py -> STATIC_ROOT = 'staticfiles' 추가위 명령어는 static 파일들을 한 군데로 모아 주는
css 에서 배워야할 핵심적인 개념 C ascadingS tyleS heet태그에는 모두 부모가 존재하는데, 부모의 최대한의 너비를 모두 가져가면서 블록 모양을 가져가는 속성높이는 따로 설정하지 않는 이상 기본적으로 설정된 값 혹은 그 내용물의 맞춰서 크기가 맞춰진다.
이전 시간에 배운 css 의 display 속성과 size 단위를 html 코드상으로 삽입하여 변화를 확인해본다/Users/사용자/PycharmProjects/pragmatic/accountapp/templates/accountapp/hello_world.html파일에
가장 오른쪽의 model 부분에 대한 설명을 이제 할것이다.장고에서 모델이라는것은 데이터 베이스랑 장고 내부에서 사용이 편하도록 연동을 시켜주는 작업이다.장고에서 모델을 가지고 이 데이터베이스와 통신을 하면서 db 의 내용을 자세히 알지 못해도 상관없다.row, col
이번 강의에서는 모델 관련한 기능을 적극적으로 사용하기 이전에 HTTP 프로토콜의 개념을 집고 가보자프로토콜은 규약같은 의미.서버는 요청을 하면 응답이 오는 식의 동작을 한다.그런데 여기서 GET 과 POST 를 사용해서 무엇을 하느냐?\-> 서버에서 무엇을 보내줘야

GET 방식을 사용하기 위해 url 에 parameter 를 추가해주면 되고, POST 방식을 사용하기 위해서는 html 안에 form 을 만들어 주어야 한다.form 이라는 것은 쉽게 말해서 서버에게 보내는 명세서 같은 개념이라고 할 수 있다. 어떤 글을 작성한다거나
POST data 를 보내고 서버 단에서 POST data 를 받고 그리고 그 data 를 DB 에 저장하는 것을 해볼 것이다. hello_world.html 파일을 조금 수정초록색 배경 지우기 : \~~height: 20rem; background-color: h1
db 에 저장된 객체들 즉 리스트들을 긁어와서 화면에 출력되게 만드는 실습을 진행한다.hello_world_list = HelloWorld.objects.all() : HelloWorld 의 모든 데이터를 다 긁어 모아 hello_world_list 라는 변수에 넣는다
개발이 아니라 서버의 내용이 더 복잡해지기 이전에 파이참엣거 서버를 디버깅하는 방법을 배운다.파이참 내부에서는 특정한 라인에서 break point 이라고 하는 중단점을 잡고 이 상태에서 변수 등 여러 값들이 어떤 상태로 되어있는지 어떤식의 구성이 되거 있는지를 중간에
hello world 라는 함수를 만들어서 이 함수에서 요청을 받아서 reponse 를 되돌려주는 구조를 이해하고 실제로 구축을 했다.form 에서 input text 가 들어오고 그것을 hello world 가 받아서 DB 에다가 저장하고, 데이터 베이스에서 읽어서
class 기반 view 를 만들 떄 주요한 파라미터를 입력해주어야 한다.1) 무슨 모델을 사용할 것인지장고에서 기본적으로 제공해주는 User 라는 모델을 사용Option + Enter : 자동 importcammnd + b : User 클래스 정의 부분으로 이동cla
AccountCreateView 와 같이 원래는 어떤 특정 view 를 상속 받은 다음에 설정할 파라미터를 넘겨주는 식으로 진행하였다Login, Logout view 따로 거창하게 작성해줘야할 필요는 없다.바로 urls.py 로 장고에서 제공해주는 login view,

{{ form }} 들을 bootstrap 을 이용해서 디자인settings.py 의 INSTALLED_APPS 에 특정 라이브러리가 설치 되었음을 입력라이브러리 가져오기{%%} 을 사용하여 form 을 수정해주면 다음과 같은 정갈한 디자인을 볼 수 있다.mt-3 :
장고에서는 Detail View 라는 이름의 view 를 사용하여 Read view 를 구현한다.detail.html 로 들어가도록 라우팅detail 은 특정 유저의 정보를 Read 하는 것이기 때문에 그 계정의 Primary key 가 필요하다.Primary key
UpdateView 는 CreateView 에서 들어가는 중요한 파라미터가 사실상 거의 동일 하기 때문에 CreateView 를 복사하여 UpdateView 를 수정 및 작성한다.라우팅pk=user.pk : update 에서는 integer 값이 pk 에 대한 정보를
라우팅 안에 들어가는 form 은 없다.본인이라면 링크를 생성하도록 따라서 Mypage 로 들어가면은 quit 링크가 생성됨을 볼 수 있다.제출 색 변경 : <input type="submit" class="btn btn-danger rounded-pill col

수정views.py 에서 AccountUpdateView, AccountDeleteView 의 context_object_name = 'target_user' 추가update.html, delete.html 파일에서 pk=user.pk $\\to$ pk=target_u
함수 마다 시작시간 종료시간을 확인 앞뒤로 datetime.now()를 붙여주어 print 구문의 시작과 종료시간이 출력되게 함반복적인 수작업이 되버림 -> 가독성 떨어짐decorator 정의어떤 함수를 인자로 받아서 그 함수를 앞뒤(혹은 앞만, 뒤만)꾸며줄 수 있는
superuser, media 설정장고 어드민 창 : superuser 계정이 있어야 접속이 가능하다.장고에서 제공해주는 Users 밖에 사용하지 않았기 때문에 다른 모델들이 보이진 않는다admin 을 제외한 기존에 만들었던 계정 모두 삭제다음에 만들 profileap
detail 페이지로 들어갔는데 사용자의 ID 가 노출되는 문제\-> ID 를 Nickname 으로 바꿔줄것.프로필 이미지(image), 닉네임(nickname), 상태메세지(message)이 3가지를 같이 묶은 profileapp 을 만들 것이다.account 객체와
우리가 만든 위의 모델을 DB 에 반영시켜주는 작업아래 명령어를 터미널에 입력해 "migrations 파일" 을 하나 만들어주고 이후 migratemigrate 를 해야지 우리가 만든 Model 이 적용된다.pragmatic/profileapp/templates/pro
ProfileCreateView 에 이어서 ProfileUpdateView 도 만들어주기어떤 profile 에 접근해야하는지를 알려줘야 하므로 int:pk 추가1) 프로필 수정 링크 만들기 :2) 프로필 사진 띄우기 :단순히 이런식으로는 img 가 보이지 않는다 $
success_url 프로필은 수정하고 나서 그 계정의 페이지로 가는것이 좋기 떄문에profileapp 의 views.py 에서 success_url = reverse_lazy('accountapp:detail') 로 수정detail 페이지는 accountapp/url
게시글 앱을 만들기 전에 게시글을 listing 해줄떄 핀터레스트를 따온 카드형 레이아웃을 구현할 방법으로 자바스크립트 라이브러리인 MagicGrid 를 살펴본다path 에서 list/ 로 접근,장고에서 제공하는 기본 view 인 TemplateView장점 : 템플릿만
on_delete=models.SET_NULL: 회원이 탈퇴헀을떄 그 게시글이 사라지지 않고 주인 없는 게시글이 되는것으로 설정writer 의 related_name 을 article 이라 설정 User 객체에서 Article 이라는 모델에 접근할 떄 쓰는 이름이므로
지금까지 CRUD 에 해당하는 view 를 작성하였다계정을 만들떄에는 단일 객체(single object)만 해당되었다ex) detailView 에서는 특정 계정의 정보최종적으로 게시판 같은 형태의 Article 을 만드는 것이 목표이기 떄문에 여러 객체(multipl
,
target_article 에 foreignkey 로 엮여 있는 comment 들을 모두 가져오기comment 의 주인인지 아닌지 확인하는 과정
어떻게 모바일 브라우저로 우리가 만든 웹에 접속할 수 있는지를 알아보자.위처럼 서버를 구동시킨것도 이 컴퓨터이고, 접속할 수 있는것도 이 컴퓨터만 가능하다.따라서 모바일에서는 접속할 수 없다모바일로 접속하기 위해서는 python manage.py runserver 0.
project 안에 article 이 생성되는 형식으로 되어야하기 떄문에 이를 수정해줄것.기존의 articleapp 의 models.py 에는 누가 작성했는지에 대한 writer 정보만이 있었는데, 이에 추가적으로 어느 프로젝트(게시판)에 해당하는지 정보 추가모델을 수
구독 기능, subscribe 기능을 RedirectView 라는 것을 만들어서 구현.구독을 할떈 따로 구독 정보를 입력하는 것이 아니기 떄문에 form 으로 입력창을 보여줄만한 그런 중간 과정이 필요가 없음.따라서 바로 요청을 받자마자 처리할 것 처리하고, redir
기존에는 아래와 같은 방식으로 모델을 작성하였다.순서대로 모델 안에 filter 를 접근하고 그 안에 특정 조건(pk, user 값 넘겨주기)을 넣는 방식이였는데pk, user 값을 넘겨주는데 이것들은 AND function 이다.pk 가 어떤 값이고, user 가 어
게시판의 글을 쓸때 가능한한 자기 의도대로 글을 쓸 수 있도록 하는 기능즉, 보는대로 글이 써진다.현재 게시글을 작성할떄는 일반적인 텍스트로 이루어져 있는 형태인데, 그것을 좀 더 굵게도 하고, 크게도 하고, 언더라인도 칠 수 있고 등등 글을 풍부하게 작성하는 기능을
주소창에 아무것도 입력하지 않고 http://127.0.0.1:8000/ 만 입력하면다음과 같은 화면이 보임홈화면을 만들어줄 것임.https://github.com/google/material-design-iconspragmatic/templates/
기본 키 (Primary Key): 테이블의 각 레코드를 고유하게 식별하는 데 사용되는 키입니다. 주로 숫자 또는 문자열 형태로 표현되며, 중복되지 않아야 합니다.외래 키 (Foreign Key): 다른 테이블과의 관계를 맺는 데 사용되는 키입니다. 외래 키는 다른 테