Backend/Django
-
django 입문(5) Model 3) DB에 Table 생성Backend/Django 2023. 9. 17. 23:50
Model 설계 및 구성이 완료되면 마이그레이션(Migration)을 해줘야 구현한 모델대로 Database Table이 생성된다. migrate : 장고 프로젝트에 존재하는 App들(ex. models, admin, auth, sessions 등…)이 필요로 하는 데이터베이스 테이블들을 생성.(각 App의 models.py 에 정의된 모델 내용대로 생성됨.) 프로젝트 생성 후 DB 작업이 필요하다면 최초 1 번은 해줘야 할 필요가 있음. python manage.py migrate {app} (작업파일번호) makemigrations: 모델이 신규로 생성되거나 변경되었을 때(즉, 모델을 수정했을 때에도 makemigrations 후 migrate을 실행해야함.), migrate 전에 수행해야 하는 명령..
-
django 입문(5) Model 2) 추가 기능Backend/Django 2023. 9. 17. 23:48
filter() 공식 문서: https://docs.djangoproject.com/en/4.0/topics/db/queries/ django.db.models.Model.objects 의 멤버 함수. parameter로 전달되는 조건을 충족하는 Object를 담고 있는 QuerySet 을 반환한다. 만약 조건을 충족하지 못하면 빈 QuerySet을 반환한다. ( Foreign Key로 다른 model 을 사용할 때 사용할 수 있는 속성 Model A와 B가 있을 때 Model B의 Foreign Key가 A 객체를 가리키면, Model A 객체에서는 a.b_set(a는 객체명, b Model B의 이름을 소문자로 바꾼 것.) 의 사용이 가능하다. 즉 Model A 객체에서 자신을 Foreign Key ..
-
django 입문 (7) 템플릿 파일Backend/Django 2023. 8. 2. 23:54
자주 사용되는 페이지 형식(html)을 템플릿으로 만들어 여러 앱에서 재사용할 수 있음. = 장고의 템플릿 render() 파이썬 데이터를 템플릿에 적용하여 HTML로 반환하는 함수 render(request, {templat파일경로}, 데이터) from .django.shorcuts import render from .models import Question def index(request): question_list = Question.objects.order_by("-create_date") context = {"question_list": question_list} return render(request, "pybo/question_list.html", context) {Model}.objects..
-
django 입문(6) 장고관리자 adminBackend/Django 2023. 7. 12. 23:39
장고관리자화면에 접속할 슈퍼유저 생성: python3 manage.py createsuperuser 장고관리자 페이지 주소: http://{자신의 페이지 주소}/admin/ 장고관리자에 모델 등록 from django.contrib import admin from .models import Question admin.site.register(Question) 장고관리자에 모델을 등록하면 자동으로 장고관리자페이지에 모델이 나타난다. 장고관리자를통해 모델을 사용(=모델 형식대로 데이터 등록, 삭제, 수정 등)할 수 있다. 모델 검색 기능 추가 구조 class {ClassName}(admin.ModelAdmin): search_fields = [{member_var}] 위 클래스는 미리 구현한 모델 클래스(e..
-
django 입문(5) Model 1) 기본 사용법Backend/Django 2023. 7. 10. 22:50
Model 데이터베이스 처리를 하기 위해 사용되는 개념. 쿼리문 대신 데이터를 처리할 수 있게 해줌. 장고는 ORM을 사용한다. ORM: Object Relational Mapping. DB의 테이블을 모델화(=객체화)하여 사용하는 방식. DB 종류를 변경하는데 수월함. (쿼리문이 아닌 모델 객체를 사용하기 때문에 - 쿼리문은 개발자마다 그 내용이 다를 수 있어 통일성 확보가 어려움. MySQL과 오라클 간 호환에도 쿼리문 차이가 발생하여 번거로움.) {app}/models.py models.py 에 구현되는 클래스(=모델)는 django.db의 models.Model을 상속 받아야만 한다. 왜냐하면 models.Model에 ORM을 사용할 수 있는 기능들이 구현되어 있기 때문이다. from django..
-
django 입문(4) CRUD 기본 작업Backend/Django 2023. 7. 7. 00:00
브라우저가 서버로 Data를 전달할 때 2가지 method : GET, POST 1) Read (GET) Tag: 기본적으로 Data를 특정 페이지(href가 가리키는 URL) 로 이동하는 동작을 수행. = GET 방식(=Server에서 Data를 가져오면서)으로 Server에 접속함. HTML Code를 return 하는 함수 구현: HtmlTemplate HttpResponse에 출력하려는 Html code(HtmlTemplate의 반환값) 를 parameter로 넘겨줌. from django.shortcuts import render, HttpResponse topics = [ {'id': 1, 'title': 'routing', 'body': 'routing is...'}, {'id': 2, 't..
-
django 입문(3) RoutingBackend/Django 2023. 7. 3. 22:40
urls.py project(보통 config) - urls.py: 가장 큰 틀의 Routing 작업 수행. 들어온 요청을 적당한 App으로 위임. 프로젝트 성격의 URL 매핑만 추가되는 것이 좋다. from django.contrib import admin from django.urls import path from pybo import views urlpatterns = [ path('admin/', admin.site.urls), path('pybo/'. views.index), # 'pybo/' URL이 요청되면 views.index 를 호출하라는 매핑을 추가 ] URL 뒤에 ‘/’ 를 붙이는 이유는 URL을 정규화하는 장고의 기능 때문. 따라서 웬만하면 URL 매핑 시 항상 끝에 슬래시(’/’)..
-
django 입문(2) 앱 생성 ~ Routing(URL 관리)Backend/Django 2023. 5. 29. 10:51
5. 앱 1 개의 프로젝트 안에는 여러 개의 앱이 존재. 여러 앱이 모여 웹 사이트를 구성. 각 앱마다 하나의 기능을 제공. ex) 관리자 앱, 인증 앱 등… 앱 동작 방식 urls.py : 사용자의 접근 요청을 어디로 보낼지 결정하는 역할. view: 여러 함수들 위치 model: Django에서 기본적으로 제공하는 DB와 통신하는 기능. 앱 생성 django-admin startapp [app_name] 6. Routing urls.py project(보통 config) - urls.py: 가장 큰 틀의 Routing 작업 수행. 들어온 요청을 적당한 App으로 위임. 프로젝트 성격의 URL 매핑만 추가되는 것이 좋다. from django.contrib import admin from django...