728x90
728x90

  Flask(플라스크)  

- 파이썬 마이크로 웹 프레임 워크

- 심플함(Simple)과 확장성(Extensible)을 가지고 있습니다.

- Django가 많은 기능들을 포함하여 손쉽게 쓸 수 있다면 Flask는 필요한 기능들을 만들어 주어야 하지만, 그만큼 가볍고 확장성이 크다는 장점이 있습니다.

  환경  

- Window 10

- Anaconda (아나콘다)

- python 3.7 (파이썬 3.7버전)

- 파이참

- Flask(플라스크)

등을 사용하여 Flask를 이용한 웹 서버를 만들고 , 웹 사이트를 제작해보도록 하겠습니다.

  플라스크 설치  

- 플라스크 설치는 아나콘다 가상환경에서 진행됩니다.

conda install flask

또는

pip install flask

명령어를 통해서 플라스크를 설치해 줍니다.

  파이참 실행  

- 새 프로젝트를 생성하고 interprinter로 아나콘다 가상환경에 설치된 파이썬3.7번전을 세팅해줍니다.

- 원하는 디렉토리에 flask_server폴더를 생성해 줍니다.

  app.py 생성  

- flask_server 디렉토리 하위에 app.py 파일을 생성합니다.

- flask 를 import 시키고 'Hello World!'를 출력하는 코드를 작성해 줍니다.

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

  플라스크 서버 시작  

- 파이참의 터미널을 통해서 플라스크를 실행합니다.

flask run

명령어를 입력하면 서버가 실행되고 url 링크가 나타나고 클릭하면 해당 url의 웹사이트가 브라우저로 표시 되게 됩니다.

  플라스크 실행 다른 방법  

- flask run으로 플라스크를 실행하는 방법 이외에도 플라스크를 실행하는 방법이 있습니다.

- 위에서 작성했던 코드의 마지막에 아래의 코드를 추가해 줍니다.

if __name__ == '__main__':
    app.run()

- 코드 -

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == '__main__':
    app.run()

- 파이참의 run을 통해서 실행하는 방법

- 터미널에서 python app.py 명령어를 통해서 실행하는 방법

python app.py

728x90
728x90

파이썬 (Python)

- 2차원 리스트 만들기

리스트 내포 [ List Comprehension] 을 사용하여 2차원 리스트 만들기

 

# 10 x 10 2차원 배열

# 1차원 리스트

lista = [ i for i range(10)]

>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 2차원 리스트

listb = [lista for _ range(10)]

>>> [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], ...]

listb = [ [ i for i in range(10) ] for _ in range(10)]

>>>[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], ...]

 

- 2차원 리스트 요소 접근

list[j][i]

 

#2차원 리스트 요소 접근 

for i in range(10):
	for j in range(10):
    	data = list[j][i]
        

 

- 2차원 리스트 출력

for y in range(len(listb)):
    for x in range(len(listb)):
        print(listb[y][x],end=' ')
    print('')
    
    
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 

 

- 비트 연산자를 이용한 부분 집합 구하기

list = [1,2,3,4,5]

 

list = ['a','b','c']
n = len(list)
for i in range(1<<n):

    for j in range(n):
        if i & (1<<j):
            print(list[j],end=' ')
    print(' ')


a  
b  
a b  
c  
a c  
b c  
a b c  

- 부분 집합 리스트에 담기 

list = ['a','b','c']
n = len(list)
set_list = []
for i in range(1<<n):
    sub_set_list = []
    for j in range(n):
        if i & (1<<j):
            sub_set_list.append(list[j])
    set_list.append(sub_set_list)
print(set_list)

[[], ['a'], ['b'], ['a', 'b'], ['c'], ['a', 'c'], ['b', 'c'], ['a', 'b', 'c']]

- 4자리 2진수 표현하기

num = 10
m , n = 0,0
result = ''
for i in range(4):
    m =num//2
    n =num%2
    result = str(n) + result
    num = m
print(result)

>>>1010

- 16진수를 2진수 표현하는 문제  

 

conversion = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
decimal_number = "45DF"
def binary(num):
    m , n = 0,0
    result = ''
    for i in range(4):
        m =num//2
        n =num%2
        result = str(n) + result
        num = m
    return result

final_list = ''
for i in decimal_number:
    result = binary(conversion[i])
    final_list += result
print(final_list)

>>> 0100010111011111

 

- 0 보다 크고 1 미만인 실수인 10 진수 > 2진수로 표현

num = 0.625
result =''
while True:
    next_num = num*2
    result += str(int(next_num))
    num = next_num - int(next_num)
    if num == 0.0:
        break
print('0.'+result)

>>> 0.101

 

728x90
728x90
728x90

+ Recent posts