Django는 파이썬으로 작성된 오픈 소스 웹 프레임워크입니다. 웹 개발을 더 쉽고 빠르게 할 수 있도록 도와주는 도구와 기능을 제공합니다.

아키텍처: Django는 MVC(Model-View-Controller) 패턴을 기반으로 한 MTV(Model-Template-View) 아키텍처를 사용합니다.

Django의 주요 특징과 기능


1. 간결하고 생산적인 개발: Django는 간결하고 직관적인 코드 작성을 지향합니다. 모델-뷰-템플릿(MTV) 아키텍처 패턴을 사용하여 애플리케이션의 구조를 구성하며, 이를 통해 개발자는 데이터 모델링, 비즈니스 로직 처리, 사용자 인터페이스 템플릿 작성 등을 명확하게 분리하여 개발할 수 있습니다.

2. 데이터베이스 관리: Django는 ORM(Object-Relational Mapping)을 제공하여 데이터베이스와의 상호 작용을 추상화합니다. 이를 통해 SQL 쿼리 작성 및 데이터베이스 스키마 관리 등을 쉽게 처리할 수 있습니다. 다양한 데이터베이스 백엔드를 지원하며, 데이터 마이그레이션과 같은 데이터베이스 관련 작업도 지원합니다.

3. 자동화된 관리 기능: Django는 관리 기능을 자동화하여 개발자가 애플리케이션을 쉽게 관리할 수 있도록 합니다. 데이터베이스 마이그레이션, URL 라우팅, 세션 관리, 사용자 인증 등의 작업을 자동으로 처리할 수 있습니다. 또한, 관리자 사이트를 통해 데이터 관리 및 CRUD(Create, Read, Update, Delete) 작업을 쉽게 수행할 수 있습니다.

4. 보안 기능: Django는 다양한 보안 기능을 제공하여 웹 애플리케이션을 보호합니다. 사용자 인증, 권한 관리, 크로스 사이트 스크립팅(XSS) 및 사이트 간 요청 위조(CSRF) 방어 등의 보안 기능을 내장하고 있습니다.

5. 다양한 확장성과 생태계: Django는 다양한 확장성을 제공합니다. 여러 서드파티 라이브러리와 플러그인을 사용하여 기능을 확장하고, RESTful API, 캐싱, 검색 엔진 통합 등 다양한 영역에서의 개발을 지원합니다. 또한, Django의 큰 커뮤니티와 생태계는 다양한 문서, 예제, 도구, 지원 및 확장성을 제공합니다. 많은 개발자들이 Django를 사용하며, 여러 커뮤니티 및 온라인 자료를 통해 지원을 받을 수 있습니다. Django는 배포, 확장, 테스트 등을 위한 다양한 도구와 지침을 제공하여 개발자들이 효율적으로 개발할 수 있도록 도와줍니다.

또한, Django는 다양한 웹 개발 영역을 포괄하는 생태계를 가지고 있습니다. 웹 애플리케이션, RESTful API, CMS(Content Management System), 온라인 상점, 블로그, 소셜 네트워크 등 다양한 유형의 프로젝트를 개발할 수 있습니다. Django는 잘 정리된 문서, 풍부한 예제, 다양한 패키지 및 라이브러리 등을 제공하여 개발자가 원하는 기능을 빠르게 구현할 수 있도록 도와줍니다.

요약하면, Django는 파이썬 기반의 웹 프레임워크로서 생산적이고 간결한 개발을 지원하며, 데이터베이스 관리, 보안 기능, 자동화된 관리 기능 등 다양한 기능을 제공합니다. 또한, 다양한 확장성과 생태계를 가지고 있어 다양한 유형의 웹 프로젝트를 개발할 수 있습니다.

'IT > 파이썬' 카테고리의 다른 글

파이썬-리스트  (0) 2020.03.21
파이썬-문자  (0) 2020.03.21
파이썬-숫자/변수/주석  (0) 2020.03.21
파이썬 설치  (0) 2020.03.21
파이썬 개요  (0) 2020.03.20

리스트

- 순서가 있는 데이터 구조, 0 부터 시작

- []기호를 사용

- 아이템으로 구성

- 각 아이템은 자동으로 부여된 인덱스(오프셋)을 가짐

- 원하는 모든 데이터를 담을 수 있음

- Read Only 리스트 - 튜플(Tuples)

- append(data)로 데이터 마지막 추가 가능

- insert(offset,data)로 데이터 변경 가능

 

리스트아이템은 변경가능, 스트링은 변경불가능

리스트,스트링 둘다 순서가 있는 시퀀스 타입

 

#empty list
empty = []

#list of numbers
nums = [10,20,30,40.5]

#list of strings
words = ['apple', 'banana', 'car']

#list of mixed items
any = [10, 'apple', 3.14, 'car']

 

오프셋으로 아이템 얻기

 

오프셋으로 아이템 바꾸기

 

인덱스 삭제하기

- 값 삭제 remove()

 

- 오프셋으로 삭제 del

 

아이템 추가 append() 
 >> 맨 마지막에 추가

아이템추가 insert()

 >> 특정위치에 추가가능

 (1번 오프셋위치에 cat을 끼워넣겠다)

 

list() 다른데이터 타입을 리스트로 변환 

 

split() 문자열을 구분자로 나누어서 리스트로 변환

 

index() 값으로 오프셋 찾기 (위치 리턴)

in 리스트 아이템인지 확인 (boolan 으로 리턴 True/False)

count() 값 세기


 

 

튜플(Tuples)

 - 튜플은 더 적은 공간을 사용

- 읽기전용으로, 속도가 리스트보다 더 빠르다.

 - 실수로 튜플의 항목이 손상될 염려가 없다.

 - 함수의 파라미터들은 튜플로 전달

# 튜플 생성
empty_tuple=()

# 튜플 생성, 값 할당 (정의할때는 괄호 붙이지 않음)
animal = 'doc','cat','bird','pig'

# 여러 변수에 값 할당 가능 'Tuple unpacking'
a,b,c,d = animal

# 리스트를 튜플로 변환
lang_list = ['java','python','c++']
tuple(lang_list)
#'(java','python','c++')

 


리스트 아이템 갯수 출력

len()

리스트 가작 마지막 아이템 첫번째 글자 대문자로 변경후 출력

animal = ['dog','cat','bird','panda','hipo']

print(animal)

last_animal = animal[-1]

print('last animal : ' + last_animal)

last_animal = last_animal.capitalize()

print(last_animal)

 

출력결과

['dog', 'cat', 'bird', 'panda', 'hipo']
last animal : hipo
Hipo

 

 


파이썬 컬렉션 : 리스트, 딕셔너리, 집합(셋)

'IT > 파이썬' 카테고리의 다른 글

[Django]  (0) 2023.06.03
파이썬-문자  (0) 2020.03.21
파이썬-숫자/변수/주석  (0) 2020.03.21
파이썬 설치  (0) 2020.03.21
파이썬 개요  (0) 2020.03.20

문자

문자열 :  "와 ' 둘다 사용가능, 주로 '사용

string11 = "hello world"
string12 = 'hello world'

+ 기호로 문자열 결합가능

string13 = 'study'
string14 = 'python'
string13+string14
 #'studypython'
type(string13)
 # <class 'str'>

 

 

*로 문자열 복제 가능

greet = 'hello' * 3 + '\n'
greet
#'hellohellohello\n'

이스케이프 문자

\n 줄바꿈
\t
\r 캐리지 티런
\0 null
\\ 문자\
\' 단일 인용부호
\" 다중 인용부호

 

str() 

데이터 타입을 문자로 변환가능

숫자/문자 결합불가, int() 함수로 숫자로 변환하거나, str()함수로 문자로 변환하여 결합연산 수행

 

문자열 인덱스(오프셋)

say = 'HELLO WORLD!'

특정문자열 추출은 변수명[숫자]

H E L L O   W O R L D !
0 1 2 3 4 5 6 7 8 9 10 11

hellow world 인덱스 (11)보다 1초과할경우 예외발생 (IndexError : string index out of range) 인덱스가 범위를 벗어났다

 

문자열 자르기(slicing)

변수[범위시작:범위끝]  : 시작되는건 포함, 끝나는건 포함되지 않음

 

len() : 문자열 길이

 

input() : 콘솔로부터 문장 입력받는 함수

 

예제) 사용자로부터 id를 입력받아, 이메일주소 알려주기

 

 

 

UTF-8 인코딩 방식

UTF-8 인코딩은 유니코드 한 문자를 나타내기 위해 1바이트에서 4바이트까지를 사용한다. 예를 들어서, U+0000부터 U+007F 범위에 있는 ASCII 문자들은 UTF-8에서 1바이트만으로 표시된다. 4바이트로 표현되는 문자는 모두 기본 다국어 평면(BMP) 바깥의 유니코드 문자이며, 거의 사용되지 않는다. UTF-16과 UTF-8 중 어느 인코딩이 더 적은 바이트를 사용하는지는 문자열에서 사용된 코드 포인트에 따라 달라지며, 실제로 DEFLATE와 같은 일반적인 압축 알고리즘을 사용할 경우 이 차이는 무시할 수 있을 정도이다. 이러한 압축 알고리즘을 사용하기 힘들고 크기가 중요할 경우 유니코드 표준 압축 방식(Standard Compression Scheme for Unicode)을 대신 사용할 수 있다.

'IT > 파이썬' 카테고리의 다른 글

[Django]  (0) 2023.06.03
파이썬-리스트  (0) 2020.03.21
파이썬-숫자/변수/주석  (0) 2020.03.21
파이썬 설치  (0) 2020.03.21
파이썬 개요  (0) 2020.03.20

숫자

파이썬은 숫자를 정수,실수뿐 아니라 복소수 까지 지원

나눗셈의 경우 파이썬2와 파이썬3이 다름

 - 파이썬2 : 정수/정수 = 정수 (가끔 버그의 원인)

 - 파이썬3 : 정수/정수 = 실수 (float)타입

 

# 변수선언, 값 할당

my_int = 7
my_float = 1.23

파이썬3에서는 long 타입이 없어지고, 소수점 없는 정수는 모두 int 타입

소수점있는 숫자는 float타입

type() 함수로 확인가능

 

 

산술 연산자 기호

덧셈 + 3 + 5 = 8
뺄셈 - 10 - 5 = 5
곱셈 * 3 * 5 = 15
나눗셈 / 30 / 6 = 5.0 
제곱 ** 2 ** 3 = 8
음수 - -2 + -3 = -5

 


PEP8 스타일 가이드

https://www.python.org/dev/peps/pep-0008/

 

PEP 8 -- Style Guide for Python Code

The official home of the Python Programming Language

www.python.org

 


 

변수

- 객체(값)을 젖아하는 메모리 공간

- 변수에 객체가 바인딩됨

- 파이썬에서 모든 자료 타입은 객체 (변수타입은 변하지 않음)

- 자기 설명적으로 의미있는 단어로 작성할것 

 

http://pythontutor.com/live.html#mode=edit

 

Live Programming Mode - Python Tutor - Visualize Python and JavaScript code

Write code in Python 2.7 Python 3.6 JavaScript ES6 Someone is typing ... << First < Prev Next > Last >> Submit

pythontutor.com

가시적으로 확인 가능

 

int 타입 : 파이썬3에서 범위제한이 없음

Java, Java Script는 32비트 정수형


주석

- 인터프리터에서 읽혀지지 않음

- 코드의 문서화 의미로 코드 가독성을 향상시키고, 품질과 생산성을 향상시킴

- 주석에 대한 표준은 전체 프로젝트 표준으로 설정 필요

 

# 싱글라인 주석

""" 
멀티라인 주석 : docstring
들어가는 모든 문자,숫자는 주석처리
123455677
"""

'''
멀티라인 주석 : docstring
들어가는 모든 문자,숫자는 주석처리
123455677
'''

- 모든 모듈, 클래스, 함수에 docstring 포함 (PEP8 스타일 가이드)

http://pep8.org 

 

PEP 8: The Style Guide for Python Code

When implementing ordering operations with rich comparisons, it is best to implement all six operations (__eq__, __ne__, __lt__, __le__, __gt__, __ge__) rather than relying on other code to only exercise a particular comparison. To minimize the effort invo

pep8.org


 

'IT > 파이썬' 카테고리의 다른 글

[Django]  (0) 2023.06.03
파이썬-리스트  (0) 2020.03.21
파이썬-문자  (0) 2020.03.21
파이썬 설치  (0) 2020.03.21
파이썬 개요  (0) 2020.03.20

파이썬 설치 (인터프리터)

https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org

 

 

홈페이지 접속 > Download > Python 3.8.2 Download

설치후 idel 더블클릭하면, 설치버전 확인

 

 


 

파이썬 에디터 PyCharm 설치

- https://www.jetbrains.com/pycharm/download 

 

Download PyCharm: Python IDE for Professional Developers by JetBrains

Download the latest version of PyCharm for Windows, macOS or Linux.

www.jetbrains.com

PyCharm Community 버전 다운로드


 

PyCharm 기본설정

PyCharm 실행후 Create Project

파이참 프로젝트단위 = 디렉토리

 

ㅇ 왼쪽상단 PyCharm 클릭  > Preferences > Editor > Font

  - 폰트, 사이즈 변경

 

'IT > 파이썬' 카테고리의 다른 글

[Django]  (0) 2023.06.03
파이썬-리스트  (0) 2020.03.21
파이썬-문자  (0) 2020.03.21
파이썬-숫자/변수/주석  (0) 2020.03.21
파이썬 개요  (0) 2020.03.20

만든사람 - Guido Van Rossum

 

특징

 

파이썬은 모듈 지원이 활발하고 사용하기 쉬운 편이라 최근 데이터 과학용 언어로 각광받고 있다.

파이썬은 윈도우와 리눅스, 맥 운영체제 레벨에서 잘 지원하여 쉘 스크립트나 배치 프로그램 작성으로 적합하다.

 

- 인간이 사용하는 언어와 유사함

- 작성이 편하며 읽기쉬움

- 개발생산성이 빠르다.

- 서버, 클라이언트, GUI Application등 다목적 사용이 가능한 범용 소프트웨어

- 가독성 - 문법이 간결하고, 들여쓰기 기반으로 가독성이 좋음

- 풍부한 라이브러리 바탕으로 확장성이 높음

- 접착성 - C로 구현된 모듈 쉽게 만들어 붙일수 있음. (반대도 가능)

- 유니코드 - 문자열이 모두 유니코드로 나타남

- 동적 타이핑 - Dynamic Language, Interpreted Language

                      * 컴파일을 하지 않고 소스코드 바로 실행되기 때문에 인터프리터 언어

                       * 파이썬 실행하는 모듈 : Python Interpreter

 

파이썬 활용

- 배우기 쉬운 교육용 프로그래밍 언어

- 쉘 스크립트와 배치프로그램 대안

- 데이터 과학자가 되려면 필수

- 웹서버 어플리케이션 - 프레임워크 Django, Flask

- 개인과 팀 단위 업무 자동화

 

- 파일 및 디렉토리 정리 작업

- 엑셀파일 및 csv 파일 작업 자동화

- 웹에서 데이터 가져와서(스크래핑) 정리작업 자동화

- 웹 서비스 활용하여 데이터 수집 및 정리작업 자동화

- 비정형 데이터(텍스트)에서 특정 데이터 검색

- 반복되는 메일 보내기 작업 자동화

- 메일을 통한 업무 작업화

 

 

파이썬 개발용 에디터 사용가능한 툴

- 마이크로소프트 비주얼 스튜디오

- JetBrain사 WebStorm

- GitHub사 Atom

 

'IT > 파이썬' 카테고리의 다른 글

[Django]  (0) 2023.06.03
파이썬-리스트  (0) 2020.03.21
파이썬-문자  (0) 2020.03.21
파이썬-숫자/변수/주석  (0) 2020.03.21
파이썬 설치  (0) 2020.03.21

+ Recent posts