분류 전체보기69 Django 우아한 URL django에서는 일정한 패턴을 가지고 입력하게 되는 URL에 대해서 다이나믹 URL을 지원하는데 이러한 URL을 처리하는 방식을 우아한 URL 이라고 표현 합니다. URL의 형태를 우리가 원하는대로 쉽게 설계할 수 있다. 직관적으로 이해할 수 있다. url마다 모두 구분을 해서 urls.py의 urlpatterns에 모든 경우의 수에 따른 경로를 적어줘도 괜찮지만 그건 너무 복잡합니다..! #foods/urls.py from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('index/', views.index), path('menu//', views.food_detail), .. Django 2021. 8. 18. Django Template Language django의 Template Language는 화면을 구성하는 template을 편리하게 작성할 수 있도록 도와줍니다. (HTML 문서를 작성할 때 프로그래밍을 하듯 작성할 수 있게 해줍니다.) {{ 변수명 }} {{ 변수명.속성 }} 템플릿 변수는 템플릿이 렌더될 때 우리가 지정해 준 결과로 변환됩니다. 뷰에서 템플릿으로 원하는 데이터를 전달하고, 템플릿은 이 템플릿 변수를 이용해서 전달받은 데이터를 사용합니다. 즉, 템플릿 변수는 뷰에서 템플릿으로 넘겨준 데이터로 해석돼서 변환되는 것이죠. django에서 템플릿 점 연산자를 만나면 아래와 같은 경우대로 순서대로 처리한다. (1) 변수를 사전형(dict)으로 생각하고 점(.) 연산자로 key 값 조회 (2) 변수를 객체로 생각하고 내부 속성값 조회 .. Django 2021. 8. 15. Django MVT 구조 Django의 중요한 MVT 구조는 다음과 같다. Model View Template : Django의 데이터 구조를 담당하고 정의된 데이터 구조를 이용해서 데이터베이스와 소통을 하는 파트 어떠한 정보들을 저장할 것이라는 사실을 모델에 정리해두면 django는 정의된 데이터 구조에 따라서 데이터베이스와 소통하며 데이터를 쓰고 (Create) 읽고 (Read) 수정하고 (Update) 삭제한다. (Delete) : 웹 사이트의 로직을 담당하는 파트 Model과 Template 사이를 연결하는 역할 (요청이 들어오면 그 요청을 처리해서 응답을 해주는 역할) 예를 들어 요청이 들어왔을 때 Model을 통해서 필요한 데이터를 가져온 다음 가져온 데이터를 알맞게 처리하고 그 처리된 데이터를 템플릿에 보내서 필요한.. Django 2021. 8. 13. Django 템플릿과 렌더링 Django에서는 HTML 처럼 화면 구성을 담당하는 것들을 Template 이라고 부른다. 화면 구성을 보여주기 위해서는 Template을 작성해서 유저에게 보여주면 되는데, 여기서 Template을 유저에게 보여준다는 것을 Template을 Render한다 라고 표현한다. (foods 앱의 template은 costaurant/foods/templates/foods 디렉토리 안에 넣어준다.) #foods/views.py def index(request): return render(request,'foods/index.html') render(request, 우리가 원하는 템플릿의 경로...) 이렇게 작성해주면 render 함수는 우리가 넘겨준 정보를 하나의 응답 즉, HttpResponse 객체를 만.. Django 2021. 8. 12. Django 요청 url에 따른 내부 실행 순서 url(Uniform Resource Locator)는 네트워크 상의 자원의 위치를 나타내는 문자열이다. url은 domain과 path부분으로 나눌 수 있는데 domain은 요청을 할 서버를 의미한다. 장고 프로젝트에 웹 브라우저로부터 요청이 들어오면 url의 path부분이 어떤지에 관계없이 제일 먼저 (1) 루트 디렉토리 안에 있는 urls.py 파일을 살펴본다. 그 이유는 settings.py의 ROOT_URLCONF(장고가 URL을 보고 가장 먼저 어떤 파일을 봐야할지 설정하는 부분)에 루트 디렉토리의 urls.py 파일이 지정되어 있기 때문이다. 설정대로 urls.py에 가서 (2-1) 입력된 url의 경로와 맞는 패턴이 있는지 확인을 한다. domain/foods/index 라고 가정했을 때 .. Django 2021. 8. 12. Django 앱(app) 프로젝트 vs 앱 프로젝트: 웹 서비스 전체 앱: 프로젝트 안에서 하나하나의 기능을 나타내는 단위 장고 프로젝트의 앱은 python manage.py startapp 앱이름 을 통해서 생성할 수 있다. 이렇게 앱을 생성하고 나면 아래와 같이 구성이 나타난다. 파일이 있는 디렉토리를 파이썬 패키지로 인식하기 위해 필요함 각각의 앱을 Django의 관리자 기능과 연결하거나 관리자 기능에 대해 설정을 하는 파일 각각의 앱마다 추가적인 기능 및 설정을 넣어 주기 위한 파일 앱에서 사용하는 데이터 구조를 정의하고 데이터베이스와의 소통을 담당하는 파일 앱에서 어떤 기능을 할지에 대한 메인 로직을 담당하는 파일 프로젝트의 테스트 코드를 작성하는 곳 데이터베이스의 변경 사항 히스토리 누적 앱을 만든 뒤에는 Django.. Django 2021. 8. 10. Django 프로젝트 구조 알아보기 django-admin startproject 프로젝트 이름 을 통해 생성한 django 프로젝트의 구조에 대해 알아보자. 만든 프로젝트의 구조는 위와 같다. 가장 바깥에 costaurant 디렉토리가 있고, 그 안에 다시 또 다른 costaurant 디렉토리가 있다. 가장 바깥쪽에 있는 costaurant 디렉토리를 프로젝트 루트라고 하며 프로젝트의 모든 파일이 담겨 있는 최상위 디렉토리이다. 그리고 안쪽에 있는 costaurant 디렉토리는 프로젝트 앱 이라고 부른다. 이 앱은 뒤에 만들 여러 앱들 중 가장 중심이 되는 앱이다. 프로젝트의 매니저 역할을 하는 파일 Django 프로젝트 관리를 위한 명령어를 지원한다. 새로운 앱을 만들거나 데이터베이스를 건드리거나 서버를 실행하는 등의 여러 기능들을 할.. Django 2021. 8. 10. 계수 정렬 (+Java 코드) 1. 카운팅 정렬이란 카운팅 정렬이란 단어 그대로 정렬 알고리즘 중 하나입니다. 그렇다면 앞에 붙은 카운팅은 무엇일까요? 무엇을 카운팅한다는 것일까요? 정답은 데이터의 값이 몇 번 등장했는지를 카운팅하는 것입니다. 대부분의 정렬은 데이터의 값을 직접 비교하여 정렬하는 경우가 많지만 데이터 값의 직접 비교는 시간 복잡도가 O(NlogN)보다 작아질 수 없다는 한계가 존재합니다. 그에 비해 카운팅 정렬은 O(N) 의 시간 복잡도를 자랑하는데요! 어떻게 가능한 것일까요? 2. 동작 방식 아래 그림과 같은 배열을 정렬하고 싶다고 가정하고 동작 방식을 설명하겠습니다. (1) 카운팅 배열 만들기 카운팅 정렬에는 기존 배열 외에도 카운팅 배열이 따로 필요합니다. 즉, 데이터가 얼마나 등장하는지를 배열 인덱스를 통해 .. Algorithm & Data Structure/이론 2021. 8. 9. 에라토스테네스의 체 (+Java 코드) 1. 에라토스테네스의 체란? 에라토스테네스의 체란 소수를 찾는 방법입니다. 해당 방법은 마치 체로 치듯이 수를 걸러낸다고 해서 에라토스테네스의 체 라고 부른다고 합니다. 2. 동작 방식 우리는 체에 집중해서 하나씩 소수가 아닌 수를 걸러낼 것 입니다. 즉, "소수를 찾고 해당 소수의 배수를 모두 지우면 소수만 남는다!" 입니다. 예를 들어, 100 이하의 자연수 중 소수를 모두 찾아보도록 하겠습니다. (1) 1 제거 우선 소수도, 합성수도 아닌 유일한 자연수인 1을 제거합니다. (2) 2를 제외한 2의 배수 제거 다음으로는 2를 제외한 2의 배수를 제거합니다. 무언가의 배수라는 것은 소수가 아니라는 것을 뜻하니까요! (3) 3을 제외한 3의 배수 제거 다음은 3을 제외한 3의 배수를 제거합니다. (4) .. Algorithm & Data Structure/이론 2021. 7. 27. 이전 1 ··· 3 4 5 6 다음