본문 바로가기

전체 글160

유저(User)와 기능(투표, 질문) user추가하기polls.models.pyowner = models.ForeignKey('auth.User', related_name='questions', on_delete=models.CASCADE, null=True) RelatedFieldpolls_api/serializers.pyquestions = serializers.PrimaryKeyRelatedField(many=True, queryset=Question.objects.all())유저 질문이 프라이머리키(id)로 나옴questions = serializers.StringRelatedField(many=True, read_only=True) 유저 질문이 string method로 나옴 questions = serializers.SlugRel.. 2024. 4. 28.
시리얼라이저(Serializer)와 에러(Error) Serialize모델 인스턴스나 queryset과 같은 데이터를 JSON 형식의 파일로 변환하는 작업DeserializeJSON형식의 데이터를 정의된 포맷에 맞추어 다시 모델 인스턴스로 변환하는 작업from rest_framework import serializersfrom polls.models import Questionclass QuestionSerializer(serializers.Serializer) : id = serializers.IntegerField(read_only=True) question_text = serializers.CharField(max_length=200) pub_date = serializers.DateTimeField(read_only=True) .. 2024. 4. 28.
뷰(View)와 템플릿(template) 뷰(Views)와 템플릿(Templates)render함수Django의 내장 함수 중 하나로, HTTP 요청을 받아 해당 요청에 대해 원하는 템플릿 파일을 렌더링하여 응답하는 기능을 가지고 있다.render() 함수는 보통 Django의 뷰(View)에서 사용되며, 첫 번째 인자로 요청(Request) 객체, 두 번째 인자로 템플릿 파일의 경로, 그리고 세 번째 인자로 Context 변수를 입력 받는다.polls/view.pyfrom .models import *from django.shortcuts import renderdef index(request) :    latest_question_list = Question.objects.order_by('-pub_date')[:5]    context =.. 2024. 4. 28.
데이터 시각화 데이터 시각화데이터 시각화를 위해서 Matplotlib이나 Seaborn라이브러리를 사용한다.Seaborn라이브러리import seaborn as sns꺾은선 그래프(Line Plot)sns.lineplot(x=[1, 3, 2, 4], y=[4, 3, 2, 1])막대 그래프(Bar Plot)sns.barplot(x=[1,2,3,4],y=[0.7,0.2,0.1,0.05])Matplotlib라이브러리import matplotlib.pyplot as plt제목추가plt.title('제목')라벨추가x축 : plt.xlabel('라벨')y축 : plt.ylabel('라벨')그래프의 축의 범위 지정x축 : plt.xlim(0,10) - x축 범위를 0~10으로 지정y축 : plt.ylim(0,10) - y축 범위를.. 2024. 4. 28.
BeuatifulSoup BeautifulSouprequests 모듈 사용시 아주 긴 텍스트이 정보를 가져오기 때문에 분석이 힘든 점을 보완하여 HTML코드를 분석해주는 HTML Parser를 이용할 수 있다.res = requests.get('https://www.example.com')soup = BeautifulSoup(res.text, 'html.parser')- response의 body를 텍스트로 받고, html로 분석soup.prettify()-보기 편한 형태로 만들어준다.폼 가져오기-soup.title()-soup.head()-soup.body()태그로 감싸진 특정요소 하나 찾기- h1=soup.find('h1")태그로 감싸진 특정요소 모두 찾기-soup.find_all('p')태그 이름 가져오기-h1.name태그.. 2024. 4. 28.
Selenium과 Markdown Selenium웹 브라우저를 자동화하는 라이브러리- 응답 후 시간을 지연시킬 수 있다- UI와의 상호작용이 가능하다(키보드 입력과 마우스 클릭등의 상호작용이 가능) Selenium 불러오기라이브러리from selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))with - as : 주어진 명령이 끝나면 driver종료드라이버에서 요소 찾기요소 하나 찾기.find_element(by, targ.. 2024. 4. 28.