본문 바로가기
Python

웹서버 개발, 표준모듈, 객체 활용 방법

by Antonio Bae 2023. 8. 3.

웹서버 개발, Django와 Flask

파이썬으로 웹 서버를 개발할때는 Django와 Flask라는 모듈을 사용합니다.

 

모듈이란

우리가 필요로한 기능의 덩어리

특히 choice , shuffle, sample은 통계에서 많이 쓰이는 함수입니다.

 

종류

내장 모듈: python 자체가 가지고 있는

외부 모듈: 사용자들이 만든 모듈

 

중앙에서 사용자 모듈을 관리해준다면?

pip 프로그램을 사용하여 모듈을 사용하는 시스템입니다.

 

pip install 모듈명을 치시면 모듈이 다운로드가 됩니다.

 

pip라고 검색하면 사이트가 나오며 여기서 참고하시면 관련 모듈 확인이 가능합니다.

https://pypi.org/project/pip/

pip

The PyPA recommended tool for installing Python packages.

pypi.org

BeutifulSoup, Flask 모듈 등이 검색가능하며, 이러한 방식으로 갖고 와서 쓰면 됩니다.

Beautiful 예시

사진 설명을 입력하세요.

Flask 예시

 

 

라이브러리

 

컴포넌트란?

 

프레임워크란?

제어의 역전이 발생한다는 뜻인데

파이썬이 맞는 규칙을 따라간다는게 아니라 beautifulSoup, Flask 등이 만든 룰을 따라야 한다는 개념입니다.

 

다음은 객체없이 코드를 짤 때 입니다.

students = [
    {"name":"RM","korean":87,"math":98,"english":100,"science":95},
    {"name":"지민","korean":92,"math":76,"english":94,"science":90},
    {"name":"뷔","korean":76,"math":88,"english":88,"science":90},
    {"name":"아랑","korean":88,"math":68,"english":58,"science":100},
    {"name":"소민","korean":94,"math":88,"english":66,"science":90},
    {"name":"대근","korean":96,"math":100,"english":96,"science":96},
]
print("이름","총점","평균",sep="\t")
for student in students:
    score_sum = student["korean"] + student["math"] + \
        student["english"] + student["science"]
    score_average = score_sum /4

    print(student["name"], score_sum, score_average, sep="\t")
 

다음은 객체를 활용할 때

def create_student(name,korean,math,english, science):
    return {
        "name":name,
        "korean":korean,
        "math":math,
        "english":english,
        "science":science
    }

#학생을 처리하는 함수 선언 462페이지에서 객체 추가된 모습(메소드 역할)
def student_get_sum(student):
    return student["korean"] +student["math"] +\
        student["english"] + student["science"]

def student_get_average(student):
    return student_get_sum(student) / 4

def student_to_string(student):
    return "{}\t{}\t{}".format(
        student["name"],
        student_get_sum(student),
        student_get_average(student))

#학생 리스트 선언
students = [
    create_student("RM",87,98,88,95),    
    create_student("지민",92,76,94,90), 
    create_student("뷔",76,88,88,90), 
    create_student("아랑",88,68,58,100), 
    create_student("소민",94,88,66,90), 
    create_student("대근",96,100,96,96)
]

print("이름","총점","평균",sep="\t")
for student in students:
    print(student_to_string(student))
 

다음은 클래스를 활용할 때 입니다.

class Student:
    def __init__(self, name, korean,math,english,science):
        self.name = name
        self.korean = korean
        self.math = math
        self.english = english
        self.science = science
    
    def get_sum(self):
        return self.korean + self.math +\
            self.english + self.science
    
    def get_average(self):
        return self.get_sum() / 4
    
    def to_string(self):
        return "{}\t{}\t{}".format(\
                                   self.name,\
                                   self.get_sum(),\
                                   self.get_average())
students = [
    Student("RM",87,98,88,95),    
    Student("지민",92,76,94,90), 
    Student("뷔",76,88,88,90), 
    Student("아랑",88,68,58,100), 
    Student("소민",94,88,66,90), 
    Student("대근",96,100,96,96)
]

print("이름","총점","평균",sep="\t")
for student in students:
    print(student.to_string())
 

게터 세터 쓰는 이유: 클래스 외부에서 프라이빗 변수의 값을 추출하거나 변경하기 위해서

getter: 속성 값을 가져오는것

setter:

 

privit 변수: 객체 외부에서 못 사용하게 만든 변수

 

 

 

 

https://naltatis.github.io/jade-syntax-docs/

Jade Template Syntax Documentation by Example

Basics doctype html html head title my jade template body h1 Hello #{name} {"name": "Bob"} id & classes #content .block input#bar.foo1.foo2 Nesting ul#books li a(href="#book-a") Book A li a(href="#book-b") Book B ul#books li: a(href="#book-a") Book A li: a(href="#bo...

naltatis.github.io

doctype html
html
  head
    title my jade template
  body
    h1 Hello #{name}