
1. ecommerce 폴더 만들기 2.

앱(App) 프로젝트에 기능을 추가하기 위해서는 앱을 만들어야 함. 일반적으로 하나의 Django 프로젝트는 하나 이상의 Django App으로 구성. 프로젝트(Project): 웹 사이트 자체(당근마켓 App 그 자체) 애플리케이션(App): 프로젝트 내의 모듈화

1.MTV 디자인 패턴 Model Template View Django 실행 흐름

urls.py 파일은 클라이언트의 요청 URL을 분석하여 URL 패턴을 정의하고 해당 요청 URL 패턴을 특정 View 함수 또는 클래스와 연결한다.URL 패턴은 특정 URL 경로에 대한 요청을 어떤 View 함수 또는 클래스로 보낼지 결정한다.예를 들어, /home/

중간쯤 보면 18개의 적용되지 않은 migration이 있다는 문구admin, auth, contenttypes, sessions 앱은 장고 프로젝트를 생성할 때 기본적으로 설치되는 앱을 확인 할수 있음데이터베이스가 필요한 앱만 migrate가 필요하다./config/

python manage.py startapp boardssetting.py 에 아래를 추가모델이 새로 생성되거나 변경된 경우, makemigrations 명령을 먼저 실행하여 마이그레이션 파일을 생성한 뒤, 그 파일을 기반으로 migrate 명령을 수행아래의 두 명령

장고는 자동 관리 인터페이스라는 아주 강력한 기능을 지원관리자나 관리자권한의 사용자가 웹서버의 콘텐츠를를 관리하기위한 도구들을 관리자전용페이지에서 지원관리자 화면을 한국어로 변경을 해보겠습니다. config/setting.py에서 LANGUAGE_CODE를 LANGUA

관리자 화면에서 데이터를 검색할 수 있도록 하자. 이를 위해 boards/admin.py 파일을 다음과 같이 수정하자.from django.contrib import adminfrom .models import Comment, Post

다음 페이지 요청 시 등록한 게시글들을 조회할 수 있도록 구현해 보자.http://127.0.0.1:8000/boards/템플릿 파일을 작성하기 전에 템플릿 파일을 저장할 디렉터리를 먼저 만들어야 한다. 템플릿을 저장할 디렉터리는 config/settings.

🌈 Template Language🔥 Template 태그 : {% 문법 %}🔥 Template 변수 : {{ 변수 }}🔥 Template 필터 : {{ 변수|옵션 }}참고 : https://docs.djangoproject.com/en/3.2/ref/
vscode 디렉토리 폴더 구조 겹침 없애기https://velog.io/@choi-ju12g/vscode-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%ED%8F%B4%EB%8D%94-%EA%B5%AC%EC%A1%B0-%EA%B2%B9%

URL 링크 구조가 자주 변경되면 템플릿에 사용된 모든 URL을 일일이 수정해야 하는 위험이 있다. 이를 해결하려면 해당 URL의 실제 주소 대신 1:1로 매핑된 별칭을 사용하는 것이 좋다.boards/urls.pyboards/post_list.htmlboards/vi

post_detail.html그리고 URL 매핑 규칙에 정의된 views.reply_create 함수를 boards/views.py 파일에 다음과 같이 추가하자.파일명: boards\\views.pyreply_create 함수의 매개변수 question_id는 URL

BASE_DIR / 'static'은 ~ecommerce\\static 디렉터리를 의미한다. 따라서, 다음과 같이 static 디렉터리를 생성이제 style.css 파일을 다음과 같이 새로 작성한다.파일명: ~static\\style.css이제 작성한 스타일시트 파일을

다운로드후 아래의 파일 2개를 static 폴더에 copyhttps://getbootstrap.com/docs/5.3/getting-started/download/templates\\boards\\post_list.html이어서 댓글 템플릿에도 아래와 같이 부

Django에서 extend와 include는 HTML 템플릿의 구조와 구성을 관리하는 데 사용되는 템플릿 태그입니다.https://hangbok-archive.com/development/django/%EC%9E%A5%EA%B3%A0-extend-includ

아래의 templates/boards/base.html 생성templates/boards/post_list.htmltemplates/boards/post_detail.html

boards\\urls.pyviews.question_create 함수를 호출하도록 매핑templates\\boards\\post_list.html버튼 생성해 보기흐름에 따라 이제 views.question_create 함수를 작성해야 한다. 하지만 뷰 함수를 작성하기

이제 게시글 등록은 잘 되지만 한 가지 아쉬운 점이 있다. 우리는 화면을 더 아름답게 꾸밀 수 있는 부트스트랩을 준비해 두었다. 그러나 {{ form.as_p }} 태그는 HTML 코드를 자동으로 생성하기 때문에, 부트스트랩 스타일을 직접 적용할 수 없다.해결방법은 없

폴더 구조를 조금 바꾸어 보자.templates\\layout\\base.html추가templates\\layout\\navbar.html

management/commands 폴더 만들기폴더 구조 조심!!make_post.py 파일을 만드후 아래의 명령어python manage.py make_posttemplates\\boards\\post_list.html페이징 처리는 잘 되었지만 한 가지 문제를 발견할

templates\\boards\\post_list.html아래를 추가 하자.아무글이나 댓글을 단후 확인

여러 사람이 사용하는 질문 답변 게시판이다. 하지만 현재까지 파이보에는 회원가입 기능도 로그인, 로그아웃 기능도 없었다. 질문을 올린 사람, 답변을 올린 사람을 구별하기 위해서는 로그인과 로그아웃 기능이 필수이다.장고의 로그인, 로그아웃을 도와주는 앱은 django.c

회원가입을 위한 링크를 다음처럼 navbar.html 템플릿에 추가하자.accounts\\urls.py아래를 추가UserForm은 django.contrib.auth.forms 모듈의 UserCreationForm 클래스를 상속하여 만들었다. 그리고 email 속성을

게시판의 질문, 답변에는 누가 글을 작성했는지 알려주는 "글쓴이" 항목이 필요하다. 이번에는 "글쓴이"에 해당되는 author 속성을 추가해 보자.

질문 목록templates\\boards\\post_list.html게시글 상세 템플릿도 다음과 같이 글쓴이를 추가하자.templates\\boards\\post_detail.html글쓴이와 작성일시가 함께 보이도록 수정했다. 그리고 부트스트랩을 이용하여 여백과 정렬

boards\\models.py 확인 created_at은 어드민에서 인스턴스가 새로 생성된 경우 당시의 시간이 저장 되어야 한다.이 경우 모델에서 필드를 만들 때 auto_now_add=True 옵션을 주면 새로 생성한 경우 생성 시간이 자동으로 저장 된다.upda

댓글 수정 버튼댓글 목록이 출력되는 부분에 답변 수정 버튼을 추가templates\\boards\\post_detail.htmlboards\\urls.pyviews.py댓글 수정을 위한 템플릿 comment_form.html 파일은 다음처럼 신규로 작성해야 한다.tem

장고에 기능을 계속 추가하다보면 뷰 파일(views.py)에 함수가 계속 늘어나 불편함을 느끼게 될 것이다. 뷰 파일에 함수가 많아지면 관리하기 힘들어지기 때문에 이쯤에서 뭔가 개선이 필요함을 느끼게 된다.boards\\views 폴더를 만듦해당 폴더를 만든후 위의 3

이번에는 게시글과 답변에 "추천(좋아요)" 기능을 추가한다우선 게시글 모델에 추천인(voter) 속성을 추가해 보자.하나의 게시글에 여러명이 추천할 수 있고 한 명이 여러 개의 게시글에 추천할 수 있으므로 이런 경우에는 "다대다(N:N)" 관계를 의미하는 ManyToM

kw = request.GET.get('kw', '')즉, kw는 다음처럼 GET 방식으로 전달되어야 index 함수에서 읽을 수 있다.http://localhost:8000/?kw=파이썬&page=1kw를 GET이 아닌 POST 방식으로 전달하는 방법은 추천

python manage.py startapp storeconfig\\settings.pyconfig\\urls.pystore\\urls.pystore\\views.pytemplates\\store\\home.html

개발 리소스로서의 정적인 파일 (js, css, image 등)앱 / 프로젝트 단위로 저장 및 서빙이미 가지고 있는 파일들을 보여주는 것이기에 외부와 통신할 필요 없음.settings.py에서 static 파일이 어디에 있고, 어디로 모을지를 설정해줌.사용자가 업로드한

어드민 페이지에서 아래를 확인해 보자

해당 템플릿 파일은 아래에서 구했음templates\\store\\home.html제대로 나오는지 확인

config\\settings.py카테고리에 항목을 아래와 같이 추가product 항목을 아래와 같이 추가파일도 같이 추가해 주기templates\\store\\home.html아래와 같이 나오는가 확인

아래를 추가아래의 두 명령어 실행is_sale 과 sale price 가격을 넣어 본다.templates\\store\\home.html

templates\\store\\home.htmltemplates\\layout\\navbar.html

templates\\store\\about.html

static\\accounts\\css\\styles.csstemplates\\accounts\\login.htmltemplates\\accounts\\head.html (파일추가)templates\\layout\\base.html (해당파일 변경)아래부분을 따로때 내

아래와 같이 나오는지 확인

store\\templates\\navbar.htmltemplates\\store\\category.html 아래와 같이 카테고리가 잘 작동되는지 확인

1.cart 앱 만들기 >python manage.py startapp cart 2.config\settings.py config\urls.py 3.cart\urls.py 4.cart\urls.py 5.제품상세에서 장바구니 버튼을 넣자 templates\s

장고에서 View를 작성할때도 나오는 Http란 인터넷에서 서버와 클라이언트가 데이터를 주고 받을 때 사용하는 통신규약(Protocol)이다.Http의 특징중 하나로 Stateless(connectionless)가 있는데, 클라이언트(사용자)가 요청을 보내고 서버(Dj

templates\\layout\\navbar.html아래의 버튼 확인cart\\views.py아래와 같이 수정테스트를 제대로 하기 위해 sessionid를 지우고 다시 한번 하기 아래와 같이 Cart 버튼이 올라 가는가 확인

제품상세 페이지에 개수(수량) 추가아래와 같이 수정templates\\layout\\navbar.html아래 두개의 함수를 완전 바꿀것아래와 같이 테스트를 하여 확인

업데이트 ajax 수정아래부분을 추가quantity 갯수를 바꾼후 홈으로 갔다가 해당 수량이 바꿔지는지 확인

삭제가 잘되는지 확인

아래의 코드 추가아래와 같이 나오는지 확인

아래과 같이 확인

1.templates\store\product.html 2.store\views.py 3.templates\layout\navbar.html - 파일 생성 4.templates\layout\navbar.html

아래와 같이 검색이 잘되는지 확인

파일 이름 정리 및 login 처리login_user 함수 추가 cart_add(request):함수 수정로그인 후 로그아웃 -> 다시 로그인 -> 장바구니에 담긴것이 제대로 나오는가 확인

https://americanopeople.tistory.com/281

python manage.py startapp payment추가

아래와 같이 배송정보가 업데이트가 잘 되는지 확인

아래와 같이 주문 버튼을 누른후admin 으로 접속후 Order items 와 orders 컬럼 확인

생성 완료어떤 파일에서든지 이제 설정파일을 기준으로 디버깅이 진행된다.진행 방법F5 또는 벌레 버튼을 누르고 시작https://terrorjang.tistory.com/entry/VSCode-Django-Debugging
아래와 같이 업데이트

def payment_order_list(request):아래과 같이 나오는가 확인

1.pip install django-allauth 2. config\urls.py 파일에 allauth 경로를 추가 3. config\settings.py 파일에 allauth 경로를 추가 아래의 모듈이 없다고 하면 아래의 명령어를 실행 > pip install

결재모듈을 사용하기 위하여 아래의 사이트에서 가입을 진행하자https://portone.io/korea/kohttps://chaeyami.tistory.com/253https://velog.io/@hckim/%EC%95%84%EC%9E%84%

1.\payment\admin.py 2.\payment\models.py 3.\payment\views.py 4.\templates\cart\cart_summary.html 5. templates\payment\head.html 아래를 확인

리소스를 다룰때 인터페이스에서 정의한 방식으로만 다룰 수 있다는 의미이다.사용자와 클라이언트가 얻으려 하는 리소스 사이의 조정자라고 할 수 있다.클라이언트의 시스템과 상호작용하여 정보를 검색하거나 기능을 수행하고자 할 때, API를 통해 요청사항을 전달 함으로써 시스템

JSON/XML은 브라우저와 서버 간의 자료를 통신할 때 사용하는 표준화된 데이터 포맷이다.,XML은 확장 가능한 마크업 언어이다.여기서 사용된 마크업 언어는 HTML에서도 동일하게 사용된다.XML은 HTML과 비슷하게 생긴 데이터 포맷이지만 데이터를 보여 주지 않고

API - 응용프로그램 데이터를 주고받는 규약.REST API - Json 형태로 CRUD 데이터를 주고받는 규약.RESTful - REST 방식을 따라서 개발하는 것.여기서 REST 방식이라고 한다면,자원과 이 자원에 대한 행위를 나눠서 작성하는 것을 말하며 간단한

1. drf 공식 사이트 drf의 모든 기본사항은 아래를 참고 한다. https://www.django-rest-framework.org/ 2. api 앱 생성 > python manage.py startapp api 3. rest framework 설치 >pi

Serilaize(직렬화): 모델 인스턴스나 QuerySet과 같은 데이터를 JSON 형식의 파일로 변환하는 작업Deserialize(역직렬화): JSON 형식의 데이터를 정의된 포맷에 맞추어 다시 모델 인스턴스로 변환하는 작업Serializer: Serialize,

테스트를 위하여 blank=True, null=True 추가후 아래의 DB 업데이트python manage.py makemigrations python manage.py migrate@api_view('GET','POST')def api_products(request)

DRF에는 view를 작성하는 방법은 여려가지가 있다. 여러가지 방법에 대해서 알아보자.

id가 나오도록 수정 return f"{self.id} {self.name}"

상속받는 클래스의 추상화(패턴화) 정도 한눈에 알아보기APIView < mixins < generics APIView < ViewSet APIView : 자주 쓰이는 view 들의 패턴을 패턴화 시켜 최소한의 코드로 Model 에 대한 view 를 구현

1. api\urls.py 아래를 추가 2. api\views.py 아래를 추가 아래와 같이 CRUD 테스트 3.router 추가

https://djoser.readthedocs.io/en/latest/pip install -U djoserpip install -U djangorestframework_simplejwt

아래와 같이 토큰을 얻기 위하여 로그인을 한다.포스트 맨으로 access token 아래와 같이 집어 넣고, http://127.0.0.1:8000/api/orders/ 주소로 접근하여, json 제대로 넘어오는가 확인한다.

npm create vite@latest react-hjs-ecommercenpm installnpm run dev아래가 실행 되는가 확인
1. 메인화면 구현 리액트 라우터 돔을 설치한다. > npm install react-router-dom 2. 기본적인 폴더 구조를 아래와 같이 만든다. https://bttrthn-ystrdy.tistory.com/91 https://github.com/accesso-app/frontend/blob/master/src/pages/routes.ts...

참고 자료https://velog.io/@jay/fsdhttps://wonderfulwonder.tistory.com/110
pip install django-cors-headers

✅ 개념Open Authorization의 약자로 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사의트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근권한을 부여할 수 있는 공통적인 수단으로 사용되는, 접근 위임을 위한 개방형 표준이다.이렇게 매 사이트마

헤더(Header): 헤더는 토큰의 타입과 사용된 알고리즘에 대한 정보페이로드(Payload): 페이로드는 토큰에 담길 실제 정보(클레임)를 포함서명(Signature): 서버에서 생성한 비밀키를 사용하여 토큰의 무결성을 보장하기 위해 생성. 서버는 이 서명을 사용하여

교차 출처 리소스 공유(Cross-origin resource sharing, CORS), 교차 출처 자원 공유는 웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다.cross-origin 이란 이들
Start Line: POST /login HTTP/1.1Headers:Content-Type: JSON 형식Authorization: 토큰 포함User-Agent: 브라우저 정보Boy:JSON 형태의 로그인 정보✅ request.GET용도: URL 쿼리 문자열에서 전
django-filter는 Django ORM에서 제공하는 강력한 쿼리 기능을 URL 쿼리 파라미터와 연결시켜주는 도구.filter_backends는 Django REST Framework (DRF)에서 리스트 API 결과를 어떻게 필터링, 검색, 정렬할지를 정의하는

가장 오래되고 가장 폭넓게 사용된 고전적 생명 주기 모형한 단계가 끝나야만 다음 단계로 넘어가는 선형 순차적 모형단계별 정의 및 산출물이 명확개발 중간에 요구사항의 변경이 용이하지 않음타당성 검토 -> 계획 -> 요구분석 -> 설계 -> 구현 -> 테스트 -> 유지보수

장고로 개발을 하고나면 runserver로 테스트를 했지만, 직접 배포를 runserver로 하게되면 보안, 안정성, 효율 등 여러 면에서 좋지않다.이전에 gunicorn을 이용해 서버 가동을 했다면 이제는 웹서버인 Nginx와 연동해 서비스를 꾸려나가볼 것입니다.우선