Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- API
- python
- 리그오브레전드
- greedy
- java
- 롤
- 라이엇
- lol
- 코딩테스트준비
- sort
- Django
- 백준
- github
- 탐욕알고리즘
- 자바
- 스파르타내일배움캠프TIL
- git
- drf
- 코딩테스트
- programmers
- Riot
- 그리디
- 내일배움캠프
- 프로그래머스
- 그리디알고리즘
- 스파르타내일배움캠프
- SQL
- 알고리즘
- 파이썬
- 장고
Archives
- Today
- Total
Lina's Toolbox
장고 기초 이해도 테스트 본문
객관식은 쉬웠고
주관식부터는 생각보다는 어려웠는데
그래도 대체적으로 문제는 쉬운편이였다. 다 맞은듯?!
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/004.gif)
그래도 블로그에 나온 문제 정리해보자
객관식
- Django 프로젝트에서 다양한 관리 명령을 실행할 수 있게 하는 파일은 무엇인가요?
- A) settings.py
- B) urls.py
- C) views.py
- D) manage.py
- 다음 중 Django에서 제공하는 기본적인 데이터베이스는 무엇인가요?
- A) PostgreSQL
- B) MySQL
- C) SQLite
- D) MongoDB
- Django의 QuerySet 메서드 중 데이터베이스에서 특정 조건에 맞는 모든 레코드를 반환하는 메서드는 무엇인가요?
- A) filter()
- B) get()
- C) exclude()
- D) all()
- Django 템플릿 시스템에서 변수의 값을 출력할 때 사용하는 문법은 무엇인가요?
- A) {{ 변수 }}
- B) { 변수 }
- C) {% 변수 %}
- D) [[ 변수 ]]
- 웹 어플리케이션에서 쿠키(Cookie)의 주요 목적은 무엇인가요?
- A) 사용자의 세션 데이터를 서버에 저장하기 위해
- B) 사용자의 브라우저에 데이터를 저장하여 다음 방문시 사용하기 위해
- C) 데이터베이스 쿼리를 최적화 하기 위해
- D) 사용자의 암호를 안전하게 저장하기 위해
- Django에서 특정URL에 대한 요청을 처리할 뷰(View)와 연결할 때 주로 사용하는 함수는 무엇인가요?
- A) path()
- B) url()
- C) include()
- D) route()
- 다음 중 Django의 ModelForm을 사용하는 이유로 가장 적절한 것은 무엇인가요?
- A) 폼을 통해 입력된 데이터를 데이터베이스에 자동으로 저장하기 위해
- B) 유저로부터 입력된 데이터를 검증하지 않고 직접 처리하기 위해
- C) Django의 인증시스템을 우회하기 위해
- D) HTML 템플릿에서 직접 쿼리셋을 사용하기 위해
주관식
- Django의 MTV 패턴에서 각 요소(Model, Template, View)의 역할을 간단히 설명하세요.
- Model: 데이터베이스 구조를 정의하고, 데이터를 관리하는 역할을 합니다. 데이터베이스 테이블과 매핑되며, 데이터를 저장, 조회, 수정, 삭제하는 기능을 제공합니다.
- Template: 사용자에게 보여지는 화면을 담당합니다. HTML 파일과 같은 템플릿을 통해 데이터를 시각적으로 표현하며, 동적인 웹 페이지를 생성하는 데 사용됩니다.
- View: 사용자의 요청을 처리하고, 적절한 데이터를 가져와서 템플릿과 결합하여 응답을 생성하는 역할을 합니다. View는 Model과 Template 사이에서 중개자 역할을 합니다.
- Django에서 settings.py 파일의 주요 역할을 구체적인 예시를 들어 설명하세요.
- settings.py 파일은 Django 프로젝트의 설정을 관리하는 파일입니다. 데이터베이스 설정, 설치된 앱, 미들웨어, 정적 파일 경로, 템플릿 설정, 국제화 설정, 보안 키 등의 다양한 프로젝트 설정이 이 파일에 포함됩니다. 프로젝트 전반의 동작을 조정하고, 필요한 외부 리소스나 라이브러리를 연결하는 역할을 합니다.
- Django ORM이란 무엇이며, 왜 사용하는지 설명하세요.
- Django ORM(Object-Relational Mapping)은 Python 객체를 데이터베이스의 테이블과 매핑하여 데이터베이스 조작을 간단하고 직관적으로 수행할 수 있게 해주는 도구입니다. SQL 쿼리를 작성하지 않고도 Python 코드만으로 데이터베이스와 상호 작용할 수 있게 해줍니다. 이를 통해 데이터베이스 독립성을 유지할 수 있으며, 데이터베이스 작업을 더 안전하고 효율적으로 수행할 수 있습니다.
- Django의 Custom UserModel을 사용하는 이유와 장점을 설명하세요.
- Django의 기본 User 모델을 사용하는 대신 Custom UserModel을 사용하면, 사용자 모델을 확장하거나 수정할 수 있어 프로젝트의 요구사항에 맞게 사용자 정보를 관리할 수 있습니다. 예를 들어, 추가적인 사용자 필드가 필요하거나 로그인 방식(예: 이메일로 로그인)을 변경하고 싶을 때 유용합니다. Custom UserModel을 사용하면 향후 확장성도 더 좋아지고, 프로젝트 시작 시 이러한 커스터마이징을 도입하면 나중에 구조 변경이 필요할 때 발생할 수 있는 문제를 예방할 수 있습니다.
- Django에서 Model 클래스는 데이터베이스 테이블과 매핑됩니다. Django ORM에서 모델을 정의할 때 필드를 정의할 수 있는 다양한 옵션 중 ManyToManyField에 대해 구체적인 사용 사례를 들어 설명하세요.
- Django의 ManyToMany는 두 모델간의 다대다 관계를 정의할 때 사용됩니다. 다대다 관계란 한 모델의 여러 인스턴스가 다른 모델의 여러 인스턴스와 연결될 수 있는 경우를 말합니다. 예를 들어, 하나의 학생이 여러 과목을 수강할 수 있고, 동시에 하나의 과목을 여러 학생이 수강할 수 있는 상황이 있을 수 있습니다.
- Django는 이러한 관계를 처리하기 위해 자동으로 중간 테이블을 생성하며 이 테이블에는 두 모델의 외래 키가 저장되어 있습니다.
코드 작성 문제
- Django 모델을 작성하세요. "BlogPost"라는 이름의 모델을 만들고, 제목(title), 내용(content), 작성일(created_at), 수정일(updated_at) 필드를 추가하세요.
- 제목은 문자열(CharField), 내용은 텍스트(TextField), 작성일과 수정일은 날짜/시간(DateTimeField) 필드로 정의합니다.
- created_at과 updated_at 필드는 각각 자동으로 생성되도록 설정하세요.
from django.db import models
class BlogPost(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
2. Django에서 사용자가 로그인할 수 있는 간단한 로그인 뷰를 작성하세요.
- 사용자가 로그인 폼을 제출했을 때, 해당 사용자를 인증하고, 성공적으로 로그인할 경우 'home' 페이지로 리디렉션합니다.
- 로그인 실패 시 다시 로그인 페이지로 리디렉션하며, 실패 메시지를 출력하세요.
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
# 이곳에 코드를 작성해 주세요.
return render(request, 'login.html')
🔽 답안
더보기
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
messages.error(request, 'Invalid username or password')
return redirect('login')
return render(request, 'login.html')
'스파르타 내일 배움 캠프 AI 웹개발 과정 > Django framework' 카테고리의 다른 글
API 문서화 (0) | 2024.09.04 |
---|---|
Django Auth (1) | 2024.09.04 |
Django의 URL namespace (0) | 2024.09.02 |
Django Form (0) | 2024.08.31 |
Django MTV 사용하기 RUD (Read, Update, Delete) (0) | 2024.08.30 |