파이썬 python 18

[django] ImageField Form 이미지 업로드하기.

django Form에서 이미지를 업로드해서 DB에 저장하는 기능을 구현하는 방법이다. 이미지 파일이 form에서 view로 넘어가지도 않는 문제, view에서 조회하는 문제들을 해결하였다. 1. media폴더 경로 설정 프로젝트 폴더 settings.py 마지막줄에 MEDIA_URL, MEDIA_ROOT 추가 # setting.py # ... 이외의 기본 세팅들 MEDIA_ROOT = BASE_DIR/'media' MEDIA_URL = '/media/' 프로젝트 폴더 urls.py에 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 추가 # urls.py from django.contrib import admin f..

[django] 프로젝트 배포 시 sqlite3 버전 오류

django프로젝트를 만든 후 aws나 gcp에 배포하려고 할 때 sqlite3의 버전 오류가 나는 경우가 많다. 이때 linux기반 OS에서 sqlite3를 쉽게 설치하는 방법이다. linux기반 지식이나 명령어들을 잘 몰라서 많이 해맸는데 아래의 명령어로 쉽게 해결할 수 있었다. 오류 내용 : django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17). sqlite3.9버전 이상을 설치해주어야 한다. koipkgs에 sqlite3 버전 별 설치파일들이 있고 이 파일들을 찾아서 다운로드 후 설치해주면 된다. 명령어 wget https://kojipkgs.fedoraproject.org//pack..

[django] django.db.utils.OperationalError: table already exist

에러 : table already exist 장고 migration시 table already exist 에러를 해결하는 과정에 대한 블로그입니다. 원인 아래와 같이 같은 이름의 테이블이 이미 존재하기 때문에 python manage.py migrate 할 수 없다는 에러메세지였다. 이 문제를 해결하려면 이미 존재하고 있는 테이블을 지우거나 수정해야 한다. 해결 python manage.py migrate --fake 을 입력하여 테이블이 없는 것으로 간주하고 새로 테이블을 만드는 명령어를 사용하면 됨.

[django] no such table: auth_user

python manage.py createsuperuser로 아이디와 패스워드를 만들려고 하는데 이런 오류가 뜬다. 구글링을 통해 찾아보니 말 그대로 DB에 테이블이 없어서 나타나는 문제점이라고 한다. 1. python manage.py makemigrations 2. python manage.py migrate 이 두가지 명령어를 순서대로 실행시켜서 migrate를 해주고 나서 다시 createsuperuser하면 된다. 장고 프로젝트를 새로 시작했을 때 기본적으로 세팅이 되어있는 모델들이 있는데 이 모델들도 맨 처음에는 migration을 해주어야한다. python manage.py makemigrations명령어는 모델에 변화가 있거나 모델을 새로 생성했을 경우 변경사항을 업데이트해주는 명령어다. ..

[django] 명령어 정리

django 명령어 정리 장고는 기본적으로 아래의 장고어드민(django-admin)이라는 명령어를 통해서 프로젝트와 앱을 실행시킬 수 있다. 프로젝트 생성 django-admin startproject [프로젝트 이름] 앱 생성 django-admin startapp [앱 이름] 서버시작 python manage.py runserver [포트번호] 장고로 프로젝트를 시작하면 manage.py라는 파일이 자동으로 생성되는데 이 파일이 있는 디렉토리에서 runserver와 포트번호를 붙여서 실행시키면 로컬 서버에서 장고프로젝트를 실행시킬 수 있게 된다! 아니 벌써 장고라는 틀을 가지고 일단 웹을 하나 찍어만들어보긴 한 셈이다. 짝짝짝!!! 이 외에도 django-admin을 치면 사용할 수 있는 명령어들이..

selenium을 이용한 네이버 뉴스 날짜별 크롤링

이번 블로그에서는 selenium을 이용해서 네이버 뉴스를 날짜별로 스크레이핑 하는 방법을 포스팅해보겠습니다~ 참고로 아래의 링크에 들어가시면 네이버 자체적으로 제공하는 api를 이용할 수 있습니다. 그런데 제가 찾았을때는 뉴스를 날짜별로 긁어올 수 있는 api는 없는것 같더라구요 ㅠㅠ 그래서 이번 기회에 공부도 하고 연습도 해볼겸 네이버 뉴스를 스크래핑 해보았습니다. https://developers.naver.com/main/ 1. selenium을 이용해서 코로나를 검색한 네이버뉴스창 띄우기. from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome('driver\chr..

파이썬 python 2021.12.20

파이썬에서 힙(heap) 사용하기 - heapq

이번 블로그는 파이썬을 이용해서 힙 자료구조를 이용하는 방법을 정리해보고자 한다. 일단 힙(heap)은 우선순위 큐를 만들때 이용하면 좋다. [자료구조] 먼저 알아야한 자료구조들에 대해서 간단하게 정리해보자! - 스택(LIFO : Last In First Out) : 자료가 들어오는 순서대로 위로 쌓인다고 생각하면 됨 - 큐(FIFO : First In First Out) : 자료가 들어오는 순서대로 영화관 줄 처럼 줄을 서 있는다고 생각하면 됨. - 우선순위 큐(Priority Queue) : 들어온 순서에 상관없이 우선순위에 따라 데이터가 처리되는 자료구조. : 힙(heap)자료구조로 구현할 수 있다. 우선순위 큐는 배열, 연결리스트, 힙으로 구현이 가능하다. 이중에서 힙(heap)으로 구현하는 것이..

파이썬 python 2021.12.14

OOP(Object Oriented Programming) - python

객체지향프로그램(Object-Oriented Programming, OOP)이란? 먼저 세계에서 가장 유명한 사전인 위키백과에서 말하는 정의를 살펴보자. 객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인..

파이썬 python 2021.09.13