# gpt로 웹개발 2 (파이썬 문법, 파이썬 가상 환경, 패키지, Flask)

## 파이썬 문법

### 기본 연산

```plaintext
# 대입 연산자
a = 10 # a에 10을 넣는다.
b = 3 # b에 3을 넣는다.

# 연산
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333333333333335 나누기
print(a % b) # 1 나머지
print(a // b) # 3 몫
print(a ** b) # 1000 제곱 10x10x10

# 비교 연산자
print(a > b) # True
print(a <= b) # False
```

### 자료형

변수에 들어가는 데이터의 형식

```plaintext
# 자료형 : 변수에 들어가는 데이터의 형식 / 숫자, 문자, 리스트, 딕셔너리

name = 'Bob'
hobby = 'python'
print(name + hobby)

num = 12

a_list = ['망고', '귤', '포도', '딸기']
print(a_list[0])        # 망고
a_list.append('체리')
print(a_list)       # ['망고', '귤', '포도', '딸기', '체리']

a_dict = {'name' : '미소', 'age' : 7}
print(a_dict)
print(a_dict['name'])
```

### 조건문

조건이 참(true), 거짓(false) 중 하나를 만족할 때 실행

```plaintext
age = 25 # age라는 나이 값을 담은 변수 만들기

if age > 20: # 조건 age가 20보다 크다면 -> True
	print("성인입니다") # 조건이 참일 때 작동하는 코드
else: # 조건이 False라면 아래 내용을 실행
	print("청소년입니다") # 조건이 거짓일 때 작동하는 코드
```

**조건이 세개 이상인 경우는 elif를 사용하면된다.**

elif는 else if의 줄인말로 이전 조건들이 모두 거짓일 때 해당 조건을 검사하고 참일 경우에만 실행

```plaintext
if 조건1:
    # 조건1이 참일 때 실행할 코드
elif 조건2:
    # 조건1이 거짓이고 조건2가 참일 때 실행할 코드
elif 조건3:
    # 조건1과 조건2가 모두 거짓이고 조건3이 참일 때 실행할 코드
else:
    # 위의 모든 조건이 거짓일 때 실행할 코드
```

### 반복문

```plaintext
fruits = ['사과','배','감','귤'] 

# fruits라는 리스트의 요소를 돌아가면서 반복할건데, 
# 그 요소 중 하나를 fruit라고 하고, fruit는 순서대로 사과/배/감/귤이 된다.
for fruit in fruits:
	print(fruit)

# 사과, 배, 감, 귤 하나씩 꺼내어 찍어낸다.
```

### 함수

같은 행위를 반복하게 하는것  
파이썬으로 평균 구하는 코드는 직관적으로 바로 알아내기 힘들지만 함수를 이용하여 평균을 구하는 코드는 바로 이해하기 쉽다.

```plaintext
# 파이썬으로 평균 구하는 함수
def average(numbers):
    total = 0
    for number in numbers:
        total += number
    return total / len(numbers)

# 함수로 평균 구하기
numbers = [1, 2, 3, 4, 5]
print(average(numbers)) # 3.0
```

```plaintext
# 헤이를 출력하는 함수 만들기 (재료가 없는 함수)
def hey(): # 함수를 선언(만들기)할 때는, 항상 뒤에 콜론(:)까지 써주기
	print("헤이") # 함수가 작동하는 코드는 들여쓰기

hey() # "헤이"를 출력하는 함수 hey() 작동시키기

# a,b,c 라는 세 숫자를 더하는 함수 만들기
def sum(a,b,c): # 필요한 요소를 명시
	return a+b+c

# 함수 호출 및 변수에 저장
# 함수를 작동시키고 내보내는 결과물을 result라는 변수에 담는다
result = sum(1,2,3)
print(result)
```

---

## 파이썬 가상 환경

프로젝트별로 다른 버전의 파이썬 및 패키지를 독립적으로 관리할 수 있게 해주는 격리된 작업 공간

### **가상 환경 만들기**

1. 보기 → 명령 팔레트 실행 (command + shift + p)
    
2. env 검색
    
3. Python : Create Environment(환경 만들기) 클릭
    
4. 선택지 중 venv 클릭
    
5. 익스플로러에서 .venv 폴더가 생성되어다면 가상 환경 생성 성공
    

---

## 패키지

패키지는 모듈을 모아놓은 단위이다.  
이러한 패키지 묶음을 라이브러리라고 하는데, 특정 기능을 구현하기 위해 필요한 기능들을 모아둔 것이다.  
파이썬에서는 외부 라이브러리를 사용하기 위해 피기지를 설치한다.

### 패키지 설치 방법

패키지를 설치할 때는 PIP를 사용하는데 여러 패키지를 설치할 수 있게 도와주는 프로그램이다.

1. 터미널에 pip install requests 입력
    
2. requests라는 패키지를 .venv라는 가상 환경에 설치하겠다는 뜻이다.
    
3. import requests 적어서 사용
    

---

## Flask

### Falsk 폴더 구조

```plaintext
flask
 - venv
 - app.py (서버)
 - templates
  - index.html (클라이언트 파일)
```

1. 폴더 안에 [app.py](https://app.py) 파일 생성
    
2. 폴더 안에 templates 폴더 생성
    
3. templates 폴더 안에 index.html 파일 생성
    

### 파일 이름 규칙

1. templates 폴더는 반드시 고정
    
2. 첫 페이지의 파일명은 index.html 사용
    
3. [app.py](http://app.py)는 변경해도 되지만 라이브러리 이름과 같은 것을 이름으로 사용하면 안된다.
    

### flask 패키지 설치

1. 터미널에 pip install flask 입력
    
2. 터미널 아래에 Successfully installed … 라고 적혀 있다면 설치 완료
    

### flask 기본 폴더 구조

flask 서버를 만들 때 항상 프로젝트 폴더 안에 templates폴더, [app.py](https://app.py) 파일 두개를 만들어 두고 시작한다.  
venv는 실제로 보이지만 안보인다라고 생각하기

### flask 프레임워크

서버를 구동시켜주는 편한 코드 모음
