The Field class in pydantic is used to define fields in data models. This class allows you to specify validation rules for fields and set default values, among other things. Typically, the Field class is used within data model classes in pydantic. For example, from pydantic import BaseModel, Field class User(BaseModel): id: int username: str = Field(..., min_length=4, max_length=20) email: str =..
pydantic은 Python의 데이터 유효성 검사 및 설정을 위한 유용한 라이브러리입니다. 이 라이브러리는 데이터 클래스 및 데이터 유효성 검사에 대한 간결한 구문을 제공하여 코드의 가독성과 유지 보수성을 향상시킵니다. pydantic의 Field 클래스는 데이터 모델의 필드를 정의하는 데 사용됩니다. 이 클래스를 사용하면 필드에 대한 유효성 검사 규칙을 정의할 수 있으며, 데이터 유효성 검사를 수행하거나 필드의 기본값을 설정할 수 있습니다. 일반적으로 Field 클래스는 pydantic의 데이터 모델 클래스 안에서 사용됩니다. 예를 들어, 다음은 Field 클래스를 사용하여 데이터 모델의 필드를 정의하는 예입니다. from pydantic import BaseModel, Field class User..
The sorted function is used in Python to sort iterable objects such as lists, tuples, and strings. This function returns a new sorted list without modifying the original data. The basic syntax of the sorted function is as follows sorted(iterable, key=None, reverse=False) iterable: Represents the iterable object to be sorted (e.g., a list, tuple, or string). key (optional): A function that provid..
sorted 함수는 파이썬에서 리스트, 튜플, 문자열, 딕셔너리 등의 iterable 객체를 정렬하는 데 사용됩니다. 이 함수는 정렬된 새로운 리스트를 반환하며, 원본 데이터를 변경하지 않습니다. sorted 함수의 기본 사용법은 다음과 같습니다. sorted(iterable, key=None, reverse=False) iterable: 정렬하려는 iterable 객체를 나타냅니다 (리스트, 튜플, 문자열, 딕셔너리 등). key (선택적): 정렬 기준을 제공하는 함수입니다. 기본값은 None이며, 이 경우에는 요소 자체의 값을 기준으로 정렬됩니다. reverse (선택적): 기본값은 False이며, True로 설정하면 내림차순으로 정렬됩니다. 다음은 간단한 예제를 통해 sorted 함수의 사용법을 보..
SQLAlchemy에서 column의 데이터에 대한 특정한 형식을 강제하려면, CheckConstraint나 server_default와 같은 방법을 사용하여 데이터의 유효성을 검증하고, 필요에 따라 변환을 수행할 수 있습니다. 예를 들어, CheckConstraint를 사용하여 정규 표현식을 이용해 유효성을 검증하는 방법은 다음과 같습니다. from sqlalchemy import Column, String, create_engine, CheckConstraint from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker Base = declarative_base() class MyTable..
To enforce a specific format for the string stored in update_user using SQLAlchemy, you can utilize methods such as CheckConstraint or server_default to validate the data and perform transformations if necessary. For instance, you can use CheckConstraint along with a regular expression to validate the format. from sqlalchemy import Column, String, create_engine, CheckConstraint from sqlalchemy.e..
NumPy는 배열을 저장하고 불러오는 여러 기능을 제공합니다. NumPy 배열을 저장하는 데 가장 일반적으로 사용되는 파일 형식은 다음과 같습니다: .npy (NumPy 이진 형식): 이 형식은 단일 NumPy 배열을 효과적으로 저장하고 불러오기에 적합합니다. np.save() 및 np.load() 함수를 사용하세요. import numpy as np # Save a NumPy array array_to_save = np.array([1, 2, 3]) np.save('saved_array.npy', array_to_save) # Load a saved NumPy array loaded_array = np.load('saved_array.npy') print(loaded_array) .npz (NumPy ..
NumPy provides several functions to save and load arrays. The most commonly used file formats for saving NumPy arrays are .npy (NumPy binary format): This format is efficient for saving and loading single NumPy arrays. Use np.save() and np.load() functions. import numpy as np # Save a NumPy array array_to_save = np.array([1, 2, 3]) np.save('saved_array.npy', array_to_save) # Load a saved NumPy a..
When using the argparse module to handle command-line arguments in Python, setting the action parameter of the add_argument function to store_true causes the option to be stored as True when provided and False otherwise. This is commonly used for handling boolean flags. Here is an example using the argparse module to handle a --verbose option as a boolean flag. import argparse # Create ArgumentP..
argparse 모듈의 add_argument 함수를 사용하여 action='store_true' 옵션을 설정하면 해당 인자가 존재하면 True로, 그렇지 않으면 False로 설정됩니다. 이는 주로 명령행 인자가 옵션으로 주어질 때 사용됩니다. 예를 들어, 스크립트를 실행할 때 --verbose 옵션이 주어지면 verbose 변수가 True로 설정되고, 그렇지 않으면 False로 설정됩니다. import argparse def main(): parser = argparse.ArgumentParser(description='Example script with a store_true argument.') # '--verbose' 옵션을 추가하고, action='store_true'로 설정 parser.add..
The `requests.exceptions.ChunkedEncodingError` typically occurs when there is an issue during the processing of an HTTP response. This error arises when the server sends the response in chunks (partial blocks), and for some reason, the chunks cannot be properly decoded by the client. Common reasons for this error include: 1. Server Issues: Problems may occur on the server side during the generat..
requests.exceptions.ChunkedEncodingError는 일반적으로 HTTP 요청을 처리하는 동안 발생하는 예외 중 하나입니다. 이 오류는 서버가 응답의 일부를 청크(일부 블록)로 전송하고 클라이언트가 응답을 처리하는 동안에 어떤 이유로 인해 청크가 올바르게 디코딩되지 않을 때 발생합니다. 이러한 오류의 일반적인 원인은 다음과 같습니다. 서버 문제: 서버에서 응답을 생성하는 동안 오류가 발생할 수 있습니다. 서버가 청크 전송을 지원하지 않거나 무효한 데이터를 전송하는 경우 오류가 발생할 수 있습니다. 인터넷 연결 문제: 네트워크 문제로 인해 응답이 일부만 도착하거나 손상된 경우 오류가 발생할 수 있습니다. 프록시 문제: 프록시 서버를 통해 요청을 보내는 경우, 프록시 서버에서 발생하는 ..
To check the extension of a file received through UploadFile in FastAPI using Python3, you can use the following code. This code extracts the file extension from the filename, compares it with a list of allowed extensions, and raises an HTTPException if the extension is not allowed. from fastapi import FastAPI, UploadFile, File, HTTPException app = FastAPI() ALLOWED_EXTENSIONS = {'txt', 'pdf', ..
FastAPI에서 UploadFile을 사용하여 전달받은 파일의 확장자(extension)를 확인하려면 다음과 같은 코드를 사용할 수 있습니다. 이 코드는 파일 이름에서 확장자를 추출하고, 허용된 확장자 목록과 비교하여 유효성을 검사합니다. from fastapi import FastAPI, UploadFile, File, HTTPException app = FastAPI() ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'} def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS @app.pos..
To check the size of an uploaded file in FastAPI and ensure it does not exceed 500MB, you can use the UploadFile class and inspect its content_length property. Below is an example code that checks the file size and raises an exception if it exceeds the specified limit. from fastapi import FastAPI, UploadFile, HTTPException app = FastAPI() @app.post("/uploadfile/") async def create_upload_file(fi..
In Python, the use of _ (single underscore) and __ (double underscore) has special meanings in terms of naming conventions. _ (Single Underscore): A single underscore is commonly used as a variable name when you want to ignore values, especially in unpacking or loops. It is often used to signal to other programmers that the value is intended to be ignored. for _ in range(5): # The underscore is ..
_ (언더스코어)와 __ (두 개의 언더스코어 혹은 더블 언더스코어)는 Python에서 특별한 의미를 가지는 네이밍 규칙입니다. _ (언더스코어): 단일 언더스코어는 흔히 사용되는 변수명으로, 언패킹이나 반복문에서 사용되지 않는 값을 무시할 때 주로 활용됩니다. 다른 개발자에게 해당 값이 사용되지 않을 것임을 알리는 표시로 사용될 수 있습니다. for _ in range(5): # 언더스코어는 반복 중에 사용되지 않는 값을 무시합니다. print("Hello") __ (두 개의 언더스코어): 두 개의 언더스코어는 "맹글링" (mangling)이라고 알려진 이름 충돌을 피하기 위해 클래스 내에서 사용됩니다. 클래스의 속성이름이 __로 시작하면, 파이썬은 _classname__attribute와 같은 이름으..
ABC (Abstract Base Class) is a feature provided by Python for supporting abstraction and polymorphism in object-oriented programming. ABC is used to define abstract classes and specify methods that must be implemented by subclasses. Definition of Abstract Classes: ABC allows the definition of abstract classes. Abstract classes can contain one or more abstract methods and cannot be instantiated d..
ABC(추상 기본 클래스, Abstract Base Class)는 Python에서 제공하는 기능 중 하나로, 클래스의 추상적인 인터페이스를 정의하는 데 사용됩니다. ABC는 일종의 템플릿 역할을 하며, 구체적인 구현을 강제하지 않고 메서드나 속성의 형태만을 지정합니다. ABC를 사용하면 다형성을 촉진하고 코드의 일관성을 유지하는 데 도움이 됩니다. from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass @abstractmethod def perimeter(self): pass class Circle(Shape): def __init__(self, radius): self.radius = radius..
When using requests.get in Python to download a file, you can check the filename in advance by examining the HTTP response headers. Typically, the server uses the Content-Disposition header to inform the client about the filename of the transmitted file. Here is a simple example code using the requests library to download a file and retrieve the filename. import requests import re from urllib.pa..
파일을 다운로드할 때 파일명을 미리 확인하는 것은 HTTP 헤더를 통해 가능합니다. 일반적으로 웹 서버는 Content-Disposition 헤더를 사용하여 클라이언트에게 전송된 파일의 이름을 제공합니다. 다음은 requests 라이브러리를 사용하여 파일을 다운로드하고, Content-Disposition 헤더를 확인하여 파일명을 얻는 간단한 예제입니다. import requests from urllib.parse import unquote url = 'http://8.8.8.8/example.zip' response = requests.get(url) # 파일명 확인 content_disposition = response.headers.get('Content-Disposition') if content..
The "with" statement in Python is used to simplify resource management tasks, especially when dealing with file handling, network connections, database connections, or any other situations where resources need to be acquired and released. It helps make the code more concise and safer. Automated Resource Cleanup: Resources, such as files or connections, are automatically closed or cleaned up when..
with 문은 Python에서 파일이나 리소스 관리와 관련된 작업을 간편하게 수행할 수 있도록 하는 구문입니다. 주로 파일 열기, 네트워크 연결, 데이터베이스 연결 등과 같이 리소스를 사용한 후에 반드시 해제해야 하는 경우에 활용됩니다. 이를 통해 코드를 더 간결하고 안전하게 작성할 수 있습니다. 리소스 해제 자동화 (Resource Management Automation): with 블록을 벗어나는 순간에 파일이나 리소스가 자동으로 닫히거나 정리됩니다. 이는 개발자가 명시적으로 리소스를 해제하는 것을 잊어버리는 것을 방지하고, 메모리 누수 등을 방지할 수 있습니다. with open("example.txt", "r") as file: content = file.read() # 파일이 자동으로 닫힘 가독..
개발을 진행하다 import를 사용자의 입력에 따라 동적으로 사용하고 싶은 경우가 생겼습니다. 파이썬에서 동적 import 하는 방법을 공부했고, 정리하고자 합니다. * 모듈(module)은 클래스, 함수, 변수등을 저장한 파일, 패키지(package)는 여러 모듈을 묶은 것입니다. 1. Python에서 import 하는 방법들 2. importlib을 사용하는 동적 import 3. __import__()를 사용하는 동적 import 4. getattr을 사용하는 동적 import 1. 일반적으로 Python에서 import 하는 방법들 파이썬에서 모듈이나 패키지를 import 할 때는 보편적으로 아래처럼 하게 됩니다. import pkg import pkg.mod from pkg import mod,..
Requests 는 파이썬에서 HTTP를 사용하기 위해 쓰여지는 라이브러리로, 기본 내장 라이브러리는 아니지만 거의 표준처럼 널리 쓰이고 있다. 개발 과정에서 많이 쓸법한 내용들만 뽑아서 정리했다. 이 글에 정리되지 않은 headers, cookies 등 작성하지 않은 내용은 링크를 참조바람. https://docs.python-requests.org/en/master/user/quickstart/ Quickstart — Requests 2.25.1 documentation Eager to get started? This page gives a good introduction in how to get started with Requests. Let’s get started with some simple ..
멀티 프로세싱을 활용하면 여러 작업을 별도의 프로세스를 생성 후 병렬처리해서 더 빠르게 결과를 얻을 수 있다. 멀티 프로세싱을 잘 활용하면 멀티코어의 CPU 장점을 잘 살릴 수 있지만, 병렬 프로그래밍의 이해 없이 코드를 작성하면 싱글 프로세스보다 더 느린 경우나, 예상하지 못한 결과가 나올 수 있으니 프로세스, 쓰레드에 대한 이해가 필요하다. * 멀티 프로세싱은 메모리 사용률이 높아지는 단점이 있다. Process 생성 import os from multiprocessing import Process num = 42 def f(name): global num num += 1 print('pid of parent:', os.getppid()) print('pid of %s : %d' %(name, os...
1. jupyter 에서도 같은 파일만 아니면 한명 이상의 유저가 서버에 접근해서 작업을 실행할 수 있습니다. 2. 제 OS환경은 우분투 16.04 버전입니다. 윈도우도 방화벽 해제랑 jupyter_notebook_config.py 파일 경로처럼 경로설정하는 부분만 센스있게 고쳐쓰시면 관리자모드 powershell 창을 열어서 똑같이 하시면 됩니다. 다른 기타 환경은 영향을 미칠 것 같지 않네요. 3. 직접 타이핑할만한 부분은 이렇게 배경색을 넣었습니다. 복사해서 쓰셔도 되지만, username 같은 부분은 본인의 사용환경에 맞게 센스있게 고쳐서 써주세요. 0. 우분투에서 포트 방화벽 해제하기 터미널에 $ sudo ufw allow 8888 주피터 서버 접속을 위해 사용할 포트를 방화벽 해제해주세요. 예..
# 이 글에 사용법이 나오는 메소드 및 인자 # sep, end, ljust(), center(), rjust() # print 문 공백 조절하기 # print 문은 입력된 값이 여러개라면 공백을 이용해서 값들을 구분하여 표현해줍니다. print("hello", "world") # 실행결과 hello world # print 문 안에 sep 인자를 이용해서 입력된 값 사이의 공백을 다룰 수 있습니다. print("hello", "world", sep="&") # 실행결과 hello&world print("I", "don't", "wanna", "study", sep="7") # 실행결과 I7don't7wanna7study # 줄바꿈 없이(엔터 없이) 여러개의 print 문 출력하기, 줄바꾸기 없이 여러개..
# 문자열 검색하기 # find()는 해당 문자열의 왼쪽에서부터 탐색을 시작해서 괄호안의 문자열이 처음 등장하는 부분의 인덱스를 반환합니다. my_str = "Hello World" print(my_str.find("H")) # 실행결과 0 print(my_str.find("W")) # 실행결과 6 print(my_str.find("l")) # 실행결과 2 print(my_str.find("Z")) # 실행결과 -1 # find("Z") 처럼 해당 문자열에 "Z" 가 존재하지 않을 경우 -1 을 반환합니다. # rfind() 는 find() 와 비슷하지만 오른쪽에서부터 탐색을 시작합니다. print(my_str.rfind('l')) # 실행결과 9 # 문자열 대문자로 변환하기 # upper() 는 입력값..