본문 바로가기
728x90
반응형
SMALL

App Programming/Django30

[Django] URL URL URL은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다. 쉽게 말해서, 웹 페이지를 찾기위한 주소를 말한다. URLconf URLconf 용어는 URL과 뷰를 매핑해주는 urls.py 파일을 말한다. URLconf를 정의할 때 하나의 파일 또는 2개의 파일에 정의할 수도 있다. 보통 프로젝트는 전체 URL을 정의하는 프로젝트 URL과 앱마다 정의하는 앱 URL 2계층으로 나눠서 코딩하는 방향이 좋다. 이 방식은 URLconf 모듈을 계층적으로 구성하므로 변경도 쉽고 확장도 용이해진다. URL 패턴별로 이름을 지정할 수 있고 패턴 그룹에 대해 이름 공간을 지정할 수 있따. 이는 reverse() .. 2023. 6. 20.
[Django] 모델 (Model) 모델 (Model) 모델은 사용될 데이터에 대한 정의를 담고 있는 장고의 클래스이다. 데이터베이스를 SQL없이 접근가능하며 데이터베이스 엔진 (MySQL, Oracle, ...)이 변경이 용이하다. 테이터베이스 처리는 ORM 기법을 사용한다. 즉, 테이블을 클래스로 매핑해서 테이블에 대한 CRUD (Create, Read, Update, Delete) 기능을 클래스 객체에 대해 수행하면, 장고가 내부적으로 SQL 처리하여 데이터베이스에 반영해주는 방식이다. ORM 기법 객체 관계 매핑은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 지향 언어에서 사용할 수 있는 "가상" 객체 데이터베이스를 구축하는 방법이다. 장고의 모델 클래스는 하나의 테이블에.. 2023. 6. 20.
[Django] MVT 패턴 MVC MVC (Model-View-Controller)는 디자인 패턴 중의 하나로 프로젝트의 구성 요소를 Model (모델), View (뷰), Controller (컨트롤러) 역할로 구분한 개발 방법론이다. MVT Model-View-Template 패턴이라고 한다. 장고의 MVT 방식은 자바 웹 프로그래밍의 MVC 방식과 거의 동일한 개념으로 웹 프로그래밍 영역을 3가지 개념으로 나눠서 개발하는 방식이다. 테이블을 정의하는 모델 (Model), 어플리케이션의 제어 흐름 및 처리 로직을 정의하는 뷰 (View), 사용자가 보게 될 화면의 모습을 정의하는 템플릿 (Template)으로 구분해서 개발을 진행한다. MVT 패턴의 처리 과정 클라이언트로부터 요청을 받으면 URLconf를 이용하여 URL을 분.. 2023. 6. 20.
[Django] 서버 배포 기본 설정으로 django는 8000번 포트에 외부에서 접속을 못하도록 설정되어 있다. 포트 번호를 바꾸고 싶거나 외부에서 접속 가능하게 하려면 아래에서 8000번을 다른 포트 번호로 설정하면 된다. settings.py ALLOWED_HOSTS =['외부 IP'] python manage.py runserver 0:8000 명령 뒤에 0:8000이라는 파라미터를 붙였다. 0:8000에서 0의 의미는 '외부에서 이 서버에 접속할 수 있도록 아이피를 개방한다'는 의미이며 :8000의 의미는 8000번 포트로 접속을 허용한다는 의미이다. python manage.py runserver 0:8000 외부 IP (공인 IP)에 포트 번호 8000인 :8000을 추가하여 url에 입력하면 외부에서 접속할 수 있다.. 2023. 4. 10.
[Django] Reverse for '' not found. '' is not a valid view function or pattern name. {% url 'url name' %} 위와 같이 url name을 바로 지정하지 않고 장고 urls.py의 app_name과 함께 경로를 지정을 해야한다. 아래와 같이 템플릿에서 url의 string literal view 이름과 함께 app_name을 사용한다. {% url 'app_name:urlname' %} https://stackoverflow.com/questions/45724006/django-reverse-for-not-found-is-not-a-valid-view-function-or-pattern-na Django - Reverse for '' not found. '' is not a valid view function or pattern name I'm working on my pro.. 2023. 4. 9.
[Django] User Logout views.py from django.contrib.auth import authenticate, login, logout def logoutUser(request): logout(request) return redirect('home') urls.py from django.urls import path from . import views urlpatterns = [ path('login/', views.loginPage, name = "login"), path('logout/', views.logoutUser, name = "logout"), path('', views.home, name = "home"), path('room//', views.room, name = "room"), path('crea.. 2023. 3. 9.
[Django] 프론트엔드 페이지 프론트엔드 컨테이너를 확인한다. docker ps -a 컨테이너를 삭제하고 생성하는 것을 반복하여 서비스가 제대로 배포되는지 확인할 수 있다. docker rm project-01 project-db 마찬가지로, 이미지도 삭제한다 (이미지를 사용하는 컨테이너가 없어야 함). docker images docker rmi project:test docker run -d -p 9999:5432 -e POSTGRES_DB=service -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=1234 --name project-db --net project postgres docker build -t project:test . # window docker run -it -p 9998:800.. 2023. 2. 22.
[Django] 시리얼라이저 (Serializer) 시리얼라이저 (Serializer) Serializer는 Django에서 사용하는 파이썬 객체나 queryset 같은 복잡한 객체들을 REST API에서 사용할 JSON과 같은 형태로 변환해주는 어댑터 역할을 한다. 쿼리셋, 모델 인스턴스 등의 complex type (복잡한 데이터)를 JSON, XML등의 컨텐트 타입으로 쉽게 변환 가능한 python datatype으로 변환시켜 준다. Deserialize은 받은 데이터 (크롤링시 parse 사용 ➡ python datatype)를 validating한 후에 parsed data를 complex type으로 다시 변환한다. serializer.py users 프로젝트에 serializer.py를 생성한다. from rest_framework impor.. 2023. 2. 22.
[Django] REST API REST API 장고에서 클라이언트 (사용자) 인증이나 컨텍스트 (세션, 로그인 정보)등을 직접 관리하는 REST API 툴킷이 존재한다. docker run -it -p 9998:8000 -p 9997:3000 -v ${PWD}:/code --name project-01 --net project project:test 장고 패키지를 설치한다. /code # pip install django /code # pip install djangorestframework /code # pip install psycopg2-binary /code # pip install Pillow /code # pip freeze 다음을 수행하면 간단한 형태의 프로젝트가 생성된다. /code # django-admin start.. 2023. 2. 21.
[Django] 프로젝트 생성 깃 저장소 (Git Repository) git init git config user.name "닉네임" git config user.email "이메일" gitignore gitignore은 프로젝트 작업시 로컬 환경의 정보나 빌드 정보등 원격 저장소에 관리되지 않는 파일들에 대해서 지정하여 원격 저장소에 실수로 올라가지 않도록 관리하는 파일이다. 정의한 정보들에 해당하는 파일들에 대하여 git track하지 않도록 설정하는 역할을 한다. https://www.toptal.com/developers/gitignore에서 프로젝트에 필요한 파일을 얻을 수 있다. # Created by https://www.toptal.com/developers/gitignore/api/django,python,node,.. 2023. 2. 20.
728x90
반응형
LIST