본문 바로가기
반응형

파이썬56

Fast API 배우기 10부 - Cookie 파라미터, Header 파라미터 Cookie 파라미터 Query 클래스와 Path 클래스와 동일한 사용버븡로 Cookie 클래스를 이용하여 Cookie를 다룰 수 있다 from typing import Optional from fastapi import Cookie, FastAPI app = FastAPI() @app.get("/items/") async def read_items(ads_id: Optional[str] = Cookie(None)): return {"ads_id": ads_id} Headerr 파라미터 마찬가지로 Header 클래스를 이용해 Header를 다룰 수 있다 from typing import Optional from fastapi import FastAPI, Header app = FastAPI() @app... 2021. 11. 1.
Fast API 배우기 9부 - Extra Data Types 지금까지 봐 온 데이터 타입은 아래와 같다. int float str bool 하지만 Fast API는 훨 씬 더 많은 데이터 타입을 제공한다. UUID: "Universally Unique Identifier"의 약자 이다., 많은 데이터베이스 시스템에서 id로 사용된다. request와 response는 전부 str로 표현된다. datetime.datetime: 파이썬의 datetime.datetime. request와 response에서 str로 표현된다. ISO 8601 format을 따른다. ex: 2008-09-15T15:53:00+05:00. datetime.date: 파이썬의 datetime.date. request와 response에서 str로 표현된다. ISO 8601 format을 따.. 2021. 11. 1.
Fast API 배우기 8부 - Example Data 넣기 Example Data 넣기 모델에 Confg 클래스를 정의한뒤 schema_extra 에 값을 넣으면 example 데이터를 넣을 수 있다. from typing import Optional from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = None price: float tax: Optional[float] = None class Config: schema_extra = { "example": { "name": "Foo", "description": "A very nice Item", "price": 35.4.. 2021. 11. 1.
Fast API 배우기 7부 - Field 클래스 Field 클래스란 쿼리 파라미터를 Query클래스로 다루고 패스 파라미터를 Path클래스로 다루고 리퀘스트 바디를 Body 클래스로 다루듯이 리퀘스트 바디 안에 있는 Metadata를 Feild 클래스로 세세하게 다룰 수 있다 from typing import Optional from fastapi import Body, FastAPI from pydantic import BaseModel, Field app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = Field( None, title="The description of the item", max_length=300 ) price: float = Field(...,.. 2021. 11. 1.
Fast API 배우기 6부 - Body 클래스 앞서 Query와 Path를 좀더 심도있게 배웠다. 이번에는 Request Body를 좀더 심도있게 다뤄보자 Query, Path, Request Body 함께 사용하기 Query와 Path 파라미터를 함께 사용한것처럼 Request Body도 함수인자에 조합하여 사용 가능하다 from typing import Optional from fastapi import FastAPI, Path from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str description: Optional[str] = None price: float tax: Optional[float] = None @app.put("/items/{item_id.. 2021. 10. 21.
Fast API 배우기 5부 - Path 클래스 앞서 Query 클래스로 Query Parameter를 다루는법을 배웠다 똑같에 Path 클래스로 Path Parameter를 좀더 심도있게 다룰 수 있다 Metadata 선언하기 Query와 똑같이 title 에 메타데이터를 넣어주면 된다 item_id: int = Path(..., title="The ID of the item to get"), from typing import Optional from fastapi import FastAPI, Path, Query app = FastAPI() @app.get("/items/{item_id}") async def read_items( item_id: int = Path(..., title="The ID of the item to get"), q: Op.. 2021. 10. 21.
Fast API 배우기 4부 - Query 클래스 이번시간에는 Query Parameter를 좀더 심도있게 다뤄보자. 심도있게 다룬다는 말은 쿼리파라미터에 본래모습을 학습하고 여러 기능을 사용해보자는 의미 from typing import Optional from fastapi import FastAPI app = FastAPI() @app.get("/items/") async def read_items(q: Optional[str] = None): results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]} if q: results.update({"q": q}) return results 위 예제에서는 q가 쿼리 파라미터이고 Optional인 상황이다 Query 클래스 쿼리 파라미터를 심도있게 다루기 .. 2021. 10. 20.
Fast API 배우기 3부 - Request Body Request Body & Response Body란? Request Body : 클라이언트가 API로 데이터를 보낼때 사용되는 데이터 Response Body : API가 request의 응답으로 클라이언트에게 보내는 데이터 path 파라미터, query 파라미터는 url에서 어떤 데이터를 보내는지 볼 수 있다. 이 데이터들 말고 url에서 보이지 않는 데이터를 실어 보낼 때 body 파라미터를 사용한다고 생각하면 된다. API(백엔드)는 거의 모든경우에 response body를 클라이언트에게 보내야 한다. 하지만 클라이언트는 꼭 request body를 보내지 않아도 된다. fast api에서는 request body를 만들기 위해선 Pydantic models 를 사용한다 Pydantic의 Bas.. 2021. 10. 20.
Fast API 배우기 2부 - query parameters Query Parameter란? 함수에 사용되는 parameter인데 path parameter에 없는 파라미터를 의미한다 from fastapi import FastAPI app = FastAPI() fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}] @app.get("/items/") async def read_item(skip: int = 0, limit: int = 10): return fake_items_db[skip : skip + limit] 위 코드에서 skip과 limit은 query로 값을 받는 파라미터이다. 저 skip과 limit에 값을 넣어주고 싶으면 ? 와 &를 이용한다. 아래와 같이.. 2021. 10. 19.
Fast API 배우기 1부 - 시작 및 path parameter Fast API란? 파이썬 웹 프레임워크중 가장 빠른속도를 지닌 프레임워크. Node.js와 Go와 속도가 맞먹는다 속도만 빠를뿐만 아니라 개발속도도 미치도록 빠르다 인터넷에 자료는 적지만 그걸 커버쳐줄만큼 document가 잘되어있다 1. 설치 두줄이면 끝. 쉽쥬? pip install fastapi pip install "uvicorn[standard]" 2. Hello World 출력하기 말도 안되게 간단하쥬? from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} 아래 커맨드로 실행해보자 uvicorn main:app --reload 그리고 로컬서버로 접속!.. 2021. 10. 18.
[Django/장고] 파이썬으로 웹페이지 만들기 튜토리얼 - 6부 자 이제 여러분은 Model Template View 짜는 법을 모두 배웠습니다. 이제 본격적으로 polls 앱을 만들어 보도록 하겠습니다. 먼저 데이터베이스에 Question과 Choice를 만들어 줍시다. 이전에 배운 admin 페이지를 이용해서 만들어 보겠습니다. 먼저 이전 튜토리얼에서 배운 __str__(self) redefinition 하여 admin페이지에 데이터가 나오도록 합니다. admin페이지로 가서 이전 데이터는 정리하고 Question 하나를 추가 해 줍니다. Choice도 추가해줍니다. 이번에는 detail 템플릿을 완성시켜 봅시다. polls/templates/polls/detail.html {{ question.question_text }} {% if error_message %.. 2021. 5. 29.
[Django/장고] 파이썬으로 웹페이지 만들기 튜토리얼 - 5부 1. View 다루기 이전 튜토리얼에서는 model을 다루어 보았으니 이번에는 View에 대해서 공부해봅시다. 들어가기전에 MVC와 MTV에 대해서 복습해볼까요? MVC 는 Model, View, Controller 의 약자이고 MTV는 Model, Template, View 의 약자라고 했습니다. 둘이 이름만 다르지 사실은 같은내용이고 장고에서 MVC를 MTV라고 부른다고 하였습니다. Model Model View Controller Controller View 이렇게 대응됩니다. 고로 장고에서 View는 유저가 보는 웹페이지와 서버의 중간다리라고 생각하시면 됩니다. 이제 polls 어플리케이션에 대한 구체적인 계획을 한번 짜봅시다. index 페이지 – Question에 관한 정보를 나타내주는 페이지.. 2021. 5. 27.
[Django/장고] 파이썬으로 웹페이지 만들기 튜토리얼 - 2부 1. MTV 모델 제가 프로그래밍을 하는데 가장 중요하다고 생각하는 점은 숲을먼저 보고 나무를 봐야 한다는 것입니다. 큰그림을 먼저 알고 코드를 봐야지 코드를 먼저보고 큰그림 이해를 절대 못하기 때문이지요. 이에 맞춰서 장고를 본격적으로 시작하기에 앞서 큰그림인 MTV 모델이라는 개념을 습득해야 합니다. MTV에 앞서 MVC 모델이라는 개념을 습득하고 갑시다. 사실 MTV MVC 둘이 같은개념이고 이름만 다릅니다. 위 그림은 MVC 모델의 대표적인 이해도입니다. Model 서버가 가지고 있는 데이터베이스 작업이라고 생각하면 됩니다. View 브라우저 상에서 사용자에게 보여지는 페이지를 의미합니다. Controller Model 에다가 일을 시키는 작업. User는 뷰를 통해 컨트롤러를 실행시켜 Model.. 2021. 5. 22.
[Django/장고] 파이썬으로 웹페이지 만들기 튜토리얼 - 1부 https://docs.djangoproject.com/en/3.2/intro/tutorial01/ Writing your first Django app, part 1 | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 해당 게시물은 장고 공식페이지를 기반으로 작성하였습니다. 최대한 쉽고 간단하게 작성하여 이해가 쉽도록 하겠습니다. 1. Django 장고란? 파이썬으로 웹페이지를 만들 수 있는 프레임워크입니다. 장고를 개발.. 2021. 5. 22.
파이썬 GIL 이란? 모 해외 시스템 반도체 회사에서 GIL이 뭔지 물어봤다길래 정리해본다. GIL(Global Interpreter Lock) 일단 이놈은 파이썬 버전 뮤텍스라고 생각하면 편하다. 허나 c/c++에서 알고있는 그 뮤텍스와 큰 차이가 있다. 파이썬의 멀티스레딩도 c/c++과 큰 차이가 있고. 결론부터 말하면 파이썬에서 스레드로 병렬 프로그래밍을 짜면 각각의 스레드가 c/c++처럼 한번에 여러작업을 수행하지 않는다. 이놈의 GIL 때문이다. 파이썬은 하나의 프로세스 안에 모든 자원을 Global하게 Lock 한다. 스레드는 프로세스 안에 자원을 공유하는데 모든 자원을 Global하게 Lock해버리면 한번에 하나의 스레드만 작업을 하게 된다. 아니 그럼 멀티스레딩이 의미 없잖아? 거의 맞는말이지만 I/O 작업을 .. 2021. 4. 17.
파이썬 순열/조합 permutation, combination 사용하기 from itertools import permutations, combinations a = [1,2,3,4,5] list(permutations(a,2)) 결과 : [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)] list(combinations(a,3)) 결과 : [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)] 고등학교때 nPr nCr 을 기억하고 있을 것이다. n개에서 r개를 선택하여 나열하는 경우의수 n개에서 r개를 선택하는 경우의 수 permutations과 combinations는 위 두개를 계산해주는 함수이다. permitations(인.. 2021. 4. 15.
[프로그래머스][완전탐색] 소수 찾기 programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 해설 내가 본래 c++이 주 언어여서 그런지 완전 c++ 스타일로 풀었다. 문제 해결은 간단하다 permutation로직으로 모든 케이스를 생성하고 해당 케이스가 소수인지 아닌지 판별한다 여기서 permutation은 파이썬 내장 함수를 사용해도 되지만 기본적으로 어떻게 하는지 적어보면 for i in range(len(numbers)): if visit[i]:.. 2021. 4. 15.
[프로그래머스][동적계획법] 등굣길 programmers.co.kr/learn/courses/30/lessons/42898?language=python3 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문재해결 방법 dp[0][0] = 1로 둔다 한 지점에서 위쪽과 왼쪽의 dp값을 더한다. set을 이용해서 웅덩이는 무시한다. 문제에서 1,000,000,007 로 나눠주라는거 주의하자 def solution(m, n, puddles): answer = 0 dp = [[0 for _ in range(m)] for _ in range(n.. 2021. 4. 13.
[기술면접] 해시테이블 파이썬 구현 해시테이블이란? 딕셔너리 자료형을 생각하면 된다. 딕셔너리 자료형은 key값을 통해 value값을 O(1)속도로 찾는다. 여기서 key값을 특정한 hash값으로 변경해준 뒤 이 hash값으로 value를 찾는데 이러한 hash값을 모아논 자료형이 해시테이블이다 즉 해시테이블은 세가지만 기억하자 key hashkey (그림에서 buckets) value 해시테이블의 과정은 이렇다. 1. key값을 기준으로 hashkey를 계산한다. 2. hashkey를 기준으로 value를 찾는다. 아래는 파이썬으로 기본적인 hashtable을 구현해본 것이다. class hashTable: def __init__(self, tableSize): self.tableSize = tableSize self.hashTable .. 2021. 4. 12.
파이썬 문자 아스키코드 얻는법 >>> ord('A') 65 >>> chr(65) 'A' ord() : 문자를 아스키코드로 반환해준다 chr() : 숫자에 맞는 문자를 반환해준다. 2021. 4. 2.
반응형