본문 바로가기
  • 살짝 구운 김 유나

Web60

실습 - 1:N 을 활용한 app 작성 1. Question. Comment 테이블 정보 eithers/models.py from django.db import models # Create your models here. class Question(models.Model): title = models.CharField(max_length=200) issue_a = models.CharField(max_length=100) issue_b = models.CharField(max_length=100) class Comment(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) pick = models.BooleanField() content = models.. 2022. 10. 6.
쿠키와 세션 HTTP (Hyper Text Transfer protocol) : HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 request : 클라이언트(브라우저)에 의해 전송되는 메시지 responsse : 서버에서 응답으로 전송되는 메시지 특징) 1. connectionless : 서버는 요청에 대한 응답을 보낸 후 연결을 끊음 ex) 네이버 페이지를 보고 있을 때 서버와 연결되어 있는 것이 아님. 서버는 페이지를 응답하고 연결을 끊음 2. stateless : 연결을 끊는 순간 클라이언트와 서버 간의 통신이 끝나며 상태 정보가 유지되지 않음 - 클라이언트와 서버가 주고받는 메시지들은 서로 완전히 독립적 그렇다면 어떻게 로그인 상태를 유지할까? -> 서버와 클라이언트 간 지속적인 상태 유지를.. 2022. 9. 8.
Django Form Form Class Form은 Django의 유효성 검사 도구 중 하나로 외부의 악의적 공격 및 데이터 손상에 대한 중요한 방어수단이다. Django는 Form과 관련한 유효성 검사를 단순화하고 자동화 할 수 있는 기능을 제공 Django는 Form에 관련된 작업의 세 부분을 처리 1. 렌더링을 위한 데이터 준비 및 재구성 2. 데이터에 대한 HTML forms 생성 3. 클라이언트로부터 받은 데이터 수신 및 처리 The Django Form class : Django form 관리 시스템의 핵심 Form class 선언 -> model과 마찬가지로 상속을 통해 선언 ( forms 라이브러리의 Form 클래스를 상속받음) -> 앱 폴더에 forms.py를 생성 후 ArticleFrom class 선언 F.. 2022. 9. 7.
render vs redirect Django에서 페이지를 이동할 때 주로 1. render 2. redirect를 사용 render() : 템플릿 불러오기!!! = html을 화면에 출력해야 하는 경우 # request, template_name은 필수로 입력해야 하는 인자! render(request, template_name, context=None, content_type=None, status=None, using=None) render는 httpResponse 객체를 반환하는 함수 -> template과 context(원하는 인자)을 엮어 httpResponse로 쉽게 반환하게 해주는 함수 사용예시) - context 속성을 통해서 템플릿에 정보를 전달 할 수 있음 def login(request): return render(.. 2022. 9. 5.
Django Model 2 - QuerySet API 외부 라이브러리 설치 및 설정 # 파이썬 기본 쉘보다 더 강력한 파이썬 쉘 $ pip install ipython # Django 확장 프로그램 모음. shell_plus, graph model 등 다양한 확장 기능 제공 $ pip install django-extensions -> 설치한 이후에 settings.py에 django_extensions 등록해주기! 패키지 목록 업데이트 $ pip freeze > requirements.txt 원래는 다음과 같은 명령어를 통해 Django Shell을 사용하지만 $ python manage.py shell dajngo-extension이 제공하는 더 강력한 shell_plus로 진행 $ python manage.py shell_plus D.. 2022. 9. 2.
Form Data 보내고 가져오기 Sending form data (client) HTML element - 데이터가 전송되는 방법을 정의 - 사용자로부터 할당된 데이터를 서버로 전송하는 역할을 담당 데이터를 어디(action)로 어떤 방식(method)으로 보낼지 1. action - 입력 데이터가 전송될 URL을 지정 - 데이터를 어디로 보낼 것인지 지정하는 것이며 , 반드시 유효한 URL이어야 함 - 이 속성을 지정하지 않으면 데이터는 현재 form이 있는 페이지의 URL로 보내짐 2. method - 데이터를 어떻게 보낼 것인지 정의 - 입력 데이터의 HTTP request methods를 지정 - GET 방식과 POST 방식 form을 통해 데이터를 제출했을 때 name 속성에 설정된 값을 서버로 전송, 서버는 name 속성에 .. 2022. 9. 2.
Templates Inheritance 템플릿 상속은 기본적으로 코드의 재사용성에 초점을 맞춤 템플릿 상속을 사용하면 사이트의 모든 공통 요소를 포함하고, 하위 템플릿이 override 할 수 있는 블록을 정의 하는 기본 'skeleton' 템플릿을 만들 수 있음 템플릿 상속에 관련된 태그 1. 하위 템플릿이 부모 템플릿을 확장한다는 것을 알림 (상속) {% extends '' %} ※ 반드시 템플릿 최상단에 작성 되어야 함 (즉, 2개 이상 사용할 수 없음) 2. 하위 템플릿에서 재지정할 수 있는 블록을 정의 {% block content %}{% endblock content %} - 즉, 하위 템플릿이 채울 수 있는 공간 - 가독성을 높이기 위해 선택적으로 endblock 태그에 이름을 지정할 수 있음 만약 모든 템플릿에 부트스트랩을 적.. 2022. 9. 1.
Django Model 1 Model : 데이터베이스에 접속하고 관리 - Model과 DB는 절대 같지 않음, DB와 소통하는 것! Model 작성하기 1. 새 프로젝트(crud), 앱(articles) 작성 및 앱 등록 $ django-admin startproject 프로젝트명 . $ python manage.py startapp 애플리케이션 -> 이 후에 settings.py에 애플리케이션 등록해주기 ! 2. models.py 작성 - 모델 클래스를 작성하는 것은 DB 테이블의 스키마를 정의하는 것 " 모델 클래스 == 테이블 스키마 " -> id 컬럼은 테이블 생성 시 자동으로 생성 class Article(models.Model): 각 모델은 django.models.Model 클래스의 서브 클래스로 표현된디. - 클래스.. 2022. 8. 31.
Django 시작하기 가상환경 설정 python -m venv venv 가상환경 구동 (활성화) source venv/Scripts/activate Django 설치 (설치 전 가상환경 설정 및 활성화를 마치고 진행) - django 4.0 릴리즈로 인해 3.2(LTS) 버전을 명시해서 설치 $ pip install django==3.2.13 프로젝트 생성 -> 프로젝트 이름에는 python이나 Django에서 사용중인 키워드 및 '-' (하이픈) 사용 불가 -> '.'(dot)을 붙이지 않을 경우 현재 디렉토리에 프로젝트 디렉토리를 새로 생성하게됨 $ django-admin startproject firstpjt . 서버 실행 - 실행 시킨 후 ctrl 키 누르고 주소 마우스 클릭 $ python manage.py runs.. 2022. 8. 30.
Django 이해하기 '웹 서비스 개발' 에는 무엇이 필요할까? 로그인, 로그아웃, 회원관리, DB, 서버, 클라이언트 보안 등 많은 기술들이 필요함 -> 이 모든 걸 직접 만들 필요는 없음 " 잘 만들어진 것들을 가져다가 좋은 환경에서 잘 쓰기만 하자! " Framework : 서비스 개발에 필요한 기능들을 미리 구현해서 모아 놓은 것. 뼈대가 되는 것 - 특정 프로그램을 개발하기 위한 여러 도구들과 규약을 제공 -> 프레임워크를 잘 사용하기만 하면 내가 만들고자 하는 본질에 집중할 수 있음 -> 소프트웨어의 생산성과 품질 높임 "서버를 구현하는 웹 프레임워크 - Django" : python으로 작성된 프레임 워크 (python이라는 언어의 강력함과 거대한 커뮤니티) - 안정적인 서비스 - 수많은 여러 유용한 기능 WWW.. 2022. 8. 30.