Programming Language 105

Django 10)Authorization/Authentication_2

User CRUD Create UserCreationForm(built-in form)을 사용 주어진 username과 password로 권한이 없는 새 user를 생성하는 ModelForm 3개의 필드를 가짐 username(from the user model) password1 password2 회원가입 페이지 작성 # accounts/urls.py app_name = 'accounts' urlpatterns = [ ..., path('signup/', views.signup, name='signup'), ] # accounts/views.py from django.contrib.auth.forms import AuthenticationForm, UserCreationForm def signup(re..

Django 09)Authorization/Authentication_1

장고 인증시스템은 인증(Authentication)과 권한(Authorization) 부여를 함께 제공 필수 구성은 settings.py에 이미 포함되어 있으며 INSTALLED_APPS에서 확인 가능 django.contrib.auth Authentication(인증): 신원확인, 사용자가 자신이 누구인지 확인하는 것 Authorization(권한, 허가): 권한 부여, 인증된 사용자가 수행할 수 있는 작업을 결정 사전 설정 app accounts 생성 및 등록(python manage.py startapp accounts, setting에서도) url 분리 및 매핑 Substituting a custom User model 개발자들이 작성하는 일부 프로잭트에서는 django에서 제공하는 built-i..

Django 08)Static/Media

Static File 응답할 때 별도의 처리 없이 파일 내용을 그대로 보여주면 되는 파일 사용자의 요청에 따라 내용이 바뀌는 것이 아니라 요청한 것을 그대로 보여주는 파일 파일 자체가 고정되어 있고, 서비스 중에도 추가되거나 변경되지 않고 고정되어있음 예를 들어, 웹 사이트는 일반적으로 이미지, 자바 스크립트 또는 CSS 같이 미리 준비된 추가파일을 제공해야함 Django에서 이러한 파일들을 static file이라 함 Django는 staticfiles 앱을 통해 정적 파일과 관련된 기능을 제공 Media File 미디어 파일 사용자가 웹에서 업로드하는 정적 파일(user-uploaded) 유저가 업로드한 모든 정적 파일 웹 서버와 정적 파일 웹 서버의 기본동작은 특정 위치(URL)에 있는 자원을 요청..

Django 07) Form

HTML form, input 태그를 통해서 데이터를 입력 받음 입력된 데이터가 필요한 데이터 형식에 맞는지 유효성 검증이 필요. Django From은 그것에 할애되는 과중한 작업과 반복코드를 줄여줌 렌더링을 위한 데이터 준비 및 재구성 데이터에 대한 HTML forms 생성 클라이언트로부터 받은 데이터 수신 및 처리 개요 Form Class Model Class를 선언하는 것과 유사 Model과 마찬가지로 상속을 통해 선언(forms 라이브러리의 Form 클래스를 상속 받음) 활용 앱 폴더에 forms.py를 생성 후 ActicleForm Class 선언 from django import forms class ArticleForm(forms.Form): title = forms.CharField(ma..

Django 06) CRUD_2

Update edit, update 두 함수 필요 new-create, edit-update의 view 함수 역할을 보면 하나의 공통점과 하나의 차이점이 있음 공통점 new-create는 모두 create 로직을 구현하기 위한 공통 목적 edit-update는 모두 update 로직을 구현하기 위한 공통 목적 차이점 new와 edit은 GET 요청에 대한 처리만을, create와 update는 POST 요청에 대한 처리만을 진행 이 공통점과 차이점을 기반으로, 하나의 view 함수에서 method에 따라 로직이 분리되도록 변경 가능 Delete

Django 05) CRUD_1

Admin site Django의 가장 강력한 기능 중 하나인 automatic admin interface 사용자가 아닌 서버의 관리자가 활용하기 위한 페이지 모델 class를 admin.py에 등록하고 관리 레코드 생성 여부 확인에 유용하며 직접 레코드를 삽입할 수도 있음 username과 password를 입력해 관리자 계정을 생성 이메일은 선택사항이기 때문에 넘기는 것이 가능 모델의 record를 보기 위해서는 admin.py에 등록 필요 CRUD with view functions view 함수를 통해 CRUD 구현하기 Article Model 작성 auto_now_add = True auto_now = True READ1 전체 게시글 조회 index 페이지에서는 전체 게시글을 조회하여 출력 R..

Django 04) SQLite 기초

마우스 우클릭으로 확인 가능 편의를 위한 외부 라이브러리 설치 pip install ipython pip install django-extensions 가상환경에서 설치하기. freeze 틈틈히 해두기(pip freeze > requiremets.txt setting에 추가. ORM 관련 구문 연습을 위해 파이썬 쉘 환경을 사용 shell_plus로 진행 python manage.py shell_plus python코드를 통해 DB 조작 가능 Database API django가 제공하는 ORM을 사용해 데이터베이스를 조작하는 방법 Model을 정의하면 데이터를 CRUD할 수 있는 API를 제공 Article.objects.all() modelclass.manager.queryset API objects..

Django 03) Form & Data

Sending and Retrieving form Data 데이터를 보내고 가져오기 HTML form element를 통해 사용자와 앱 간의 상호작용 HTML form’s attributes action 입력데이터가 전송될 URL을 지정 데이터를 어디로 보낼 것인지 지정하는 것이며 반드시 유효한 URL이어야함 속성을 지정하지 않으면 데이터는 현제 form이 있는 페이지의 URL로 보내짐 method 데이터를 어떻게 보낼 것인지 정의 입력 데이터의 HTTP request methods를 지정 HTML form 데이터는 오직 2가지 방법으로만 전송 할 수 있음. Get, Post HTML input element 사용자로부터 데이터를 입력받기 위해 사용 type 속성에 따라 동작방식이 달라짐 input 요소..

Django 02) MTV 구조

Design Pattern 각기 다른 기능을 가진 다양한 응용 소프트웨어를 개발할 때 공통적인 설계 문제가 존재하며, 이를 처리하는 해결책 사이에도 공통점이 있음. 이러한 유사점을 패턴이라 함. “클라이언트-서버 구조”도 소프트웨어 디자인 패턴 중 하나 디자인 패턴의 장점 복잡한 커뮤니케이션이 간단해짐 장고의 디자인 패턴 Django에 적용된 디자인 패턴은 MTV 패턴 MTV pattern은 MVC 패턴을 기반으로 변형된 것 MVC Software Design Pattern Model - View - Controller. 데이터 및 논리제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴 하나의 큰 프로그램을 세가지 역할로 구분한 개발 방법론 model: 데이터와 관련된 로직을 관리 view: 레이아웃..

Django 01) 첫걸음

@ terminal, pip install django==3.2.18 django-admin startproject first_pjt cd first_pjt python manage.py runserver ctrl + c 누르면 서버 종료 가상환경 세팅 프로잭트 폴더 안에 가상환경을 만들고 세팅하는 것이 좋음 프로잭트별 패키지를 독립적으로 관리하기 위한 것 가상환경 생성 python -m venv nameHere 가상환경 적용(맥에서는) source venv/bin/activate (venv)라는 것이 뜨면 가상환경 적용된 것 source ./venv/Scripts/activate 비활성화 deactivate 가상환경 패키지 목록을 텍스트 파일로 저장 pip freeze > requirements.txt..