목록Python | Web/Python (11)
내가 보려고 만든 블로그
pydantic은 type annotation 을 바탕으로 데이터를 검증해주고 어긋날 시 올바른 형태로 바꿔주는 역할을 해주는 라이브러리다. 주로 사용처는 fastapi를 통해 웹개발을 할 때 request , response 등을 통해 데이터를 주고 받을 때 데이터들을 검증해줄때 사용한다. 다음 포스팅에 sql_alchemy 이용해서 DB연동하는 내용을 적을라고 했는데 한번에 같이 적는 것 보다는 나눠 적는게 나은 것 같아 적어봄! fastapi에서 사용하는 예시를 가져왔다 (매우 간단하기 하지만) . 유저테이블에 다음과 같이 데이터를 넣어 줄 때 해당 컬럼의 자료형을 체크해주는 것. 이름에 이상한 숫자가 들어온다면 오류를 내뱉거나 자동으로 형변환이 가능하다. def add_user(user: sche..
파이썬은 자료형을 표시 안해도 되는 편리한 언어이다. 하지만 소스코드들을 살펴보면 자료형, 혹은 처음 보는 것들이 많이 있어 당황스러울 때가 있는데 파이썬에서 따로 모듈을 불러올 필요없이 int, str 등은 자료형을 표현할 수있지만 다른 자료구조 list ,set 등등을 표기하기 위해선 typing 이라는 모듈이 필요하다. LIST, Dict, Tuple 등등 List, Dict, Tuple 등등을 표현할 때 사용. List[int] 와 같이 리스트 안의 자료형을 표시할 수가 있는데 사실 다르다고 오류가 나진 않는다. Union 한 변수에 여러개의 자료형이 가능할 때 사용. Union[자료형, 자료형 ...] 식으로 적어주면 된다 . ex) a = int 도 되고 a= str 도 될 수 있을 때 Opt..
Django나 플라스크 없이 간단하게 api 서버를 만드는 법 정리. 먼저, 정적 웹서버를 띄우는법은 http.server 클래스를 이용하면 됨. python3 -m http.server {PORT번호} 와 같은 형식으로 쉘에서 실행해주면 다음과 같이 index.html 혹은 index.hml 파일을 디렉토리내에서 찾아서 html파일을 리턴하게 된다. 만일 index.html 파일이 없을 경우 커맨드를 실행한 디렉토리의 파일들을 보여주게 됨. 다음으로 특정 엔드포인트 (test) 에 접근했을때 test.htm (파일) 을 리턴하도록 만들어 볼 것이다. server.py라는 파일을 다음과 같이 작성하고. 같은 디렉토리내에 test.html 을 자유롭게 만들어주면 된다. import http.server i..
Socket을 이용해서 간단한 채팅 프로그램 만들기! 1. Server.py ( 채팅서버 ) import socket from _thread import * client_sockets = [] HOST = 'localhost' PORT = 9099 print("Server Start") server_socket = socket.socket(socket.AF_INET , socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1) server_socket.bind((HOST, PORT)) server_socket.listen() def threaded(client_socket, addr): print('>> Co..
Decorator 는 이름 그대로 함수를 장식하는 역할을 한다. 다음과 같이 "Hello World"를 출력하는 간단한 함수, HelloWorld를 만들었다. 추가로 func라는 인자를 받는 Decorator라는 함수를 만들어주었다. 파이썬에서는 func 라는 이름으로 함수를 인자로 받을수 있다. 이 Decorator라는 함수에 Wrapper라는 이름으로 인자로 받아 실행하게 되는 func 함수의 앞 , 뒤에 print를 넣어 데코레이터의 동작여부를 체크하고 최종적으로 Wrapper를 return 할 수 있도록 하였다. 이제 이 Decorator에 수식할 함수 HelloWorld를 넣어주고 호출해보면 다음과 같이 "Hello World"의 앞, 뒤에 데코레이터가 동작하는 것을 볼 수있다. 히지만 이 방법..
정의부터 말하자면 클래스 내에 __get__ , __set__ , __delete__ 등의 매직메소드가 존재할때 이 클래스를 이용하여 생성한 객체를 디스크립터라고 한다. 그렇다면 __get__ ,__set__ , __delete__ 는 무슨 역할을 할까?? 다음과 같이 3가지의 매직메소드를 가지고 있는 AGE 클래스를 선언하였다. 그리고 다음과 같이 이 클래스를 객체로 생성한 것을 포함하고 있는 Age_of_someone 클래스를 생성하였다. 1. __get__ 에 의하여 객체를 부르기만 하더라도 __get__ 메소드가 실행되는 것을 확인할 수 있다. 2. __set__ 에 의하여 = 을 통해 새로운 값을 할당할 경우 __set__ 이 실행됨을 알 수 있다. 3. __delete__ 에 의하여 del 이..