Python 40

Django 실습(6) Login 기능 구현하기

Django에서는 startproject를 했을 때 자동으로 추가되는 django.contrib.auth 앱을 이용하면 간단하게 구현할 수 있다. 실습 Django 프로젝트를 만들고 accounts 앱 추가, settings.py에 app추가, urls.py에 "accounts/" url 추가 accounts / urls.py 추가 from django.urls import path from . import views app_name = "accounts" urlpatterns = [ path('signup/', views.signup, name='signup'), path('login/', views.login, name='login'), path('logout/', views.logout, name=..

Django 2023.10.13

Django ORM을 이용해서 DB CRUD 해보기

공식문서 : https://docs.djangoproject.com/en/4.2/ref/models/querysets/#django.db.models.query.QuerySet Django The web framework for perfectionists with deadlines. docs.djangoproject.com Django ORM : 우리가 만든 모델 클래스와 DB에 생성된 테이블을 자동으로 연관지어 주는 기술. python 문법을 통해서 DB를 조작할 수 있다. 실습(4)에서 만들어둔 모델과 DB를 이용해서 ORM 사용해보기. python manage.py shell blog / models.py 에서 Post 클래스 import 하기 >>> from blog.models import Po..

Django 2023.10.11

Django 실습(4) Model과 DB를 이용한 게시물 관리와 업로드

간단하게 startapp blog 만 하고 이미지를 업로드한 게시물들의 목록과 검색 기능을 구현한 index와 게시물의 상세 정보를 볼 수 있는 post와 게시글을 작성하고 파일을 업로드 하는 write를 구현해보자. 실습 여태 했던 실습 내용을 참고하여 여기까지 만들어서 runserver 했을 때 http://127.0.0.1:8000/blog, http://127.0.0.1:8000/blog/write, http://127.0.0.1:8000/blog/1 이 다 잘 실행되는지 확인. blog / models.py 에 DB 설계하기 아래 사이트를 참고 https://docs.djangoproject.com/en/4.2/ref/models/fields/ Django The web framework for..

Django 2023.10.11

Django 실습(3) Bootstrap 사용해서 블로그 만들고 꾸미기

Bootstrap : 웹페이지의 디자인을 손쉽게 만들 수 있게 도와주는 프레임워크 비슷한걸로 Talewind가 있다. 사용법 : 웹사이트 확인 https://getbootstrap.kr/ Bootstrap 강력하고 확장 가능하며 기능이 풍부한 프론트엔드 툴킷. Sass로 빌드 및 커스터마이징하고, 사전 빌드된 그리드 시스템 및 구성 요소를 활용하고, 강력한 JavaScript 플러그인으로 프로젝트에 생기 getbootstrap.kr CDN 방식이 설치 안해도 돼서 편한듯? Django에서 CSS를 사용하기 위해서는 static기능을 이용해서 css경로를 줘야한다. {% load static %} {% static 'STATIC_URL 이후의 경로' %} 부트스트랩 무료 템플릿을 다운받아서 지난번에 해본 ..

Django 2023.10.10

Django 실습(2) Templates 분리와 상속으로 블로그 만들기

templates안에 html파일들을 더 효율적으로 관리하기 위해서 각각 app안에 templates폴더를 만드는것이 아닌, BASE_DIR 에 templates폴더를 따로 만들어서 관리할 수 있다. 만약 mysite라는 프로젝트에 main이라는 앱과 blog라는 앱이 있다면, mysite / main / templates 와 mysite / blog / templates 가 아닌, mysite / templates / main , mysite / templates / blog 폴더를 만들어서 한곳에 관리를 한다. BASE_DIR : 프로젝트 최상위 폴더 ex) mysite 템플릿 태그 {{ 변수명 }} {% 템플릿 문법 %} 템플릿 상속 : 홈페이지를 조각내어 각각의 html로 관리하는 기법 부모 ht..

Django 2023.10.10

FastAPI 맛보기

FastAPI : 빠르고 단순하고 가벼운 파이썬 프레임워크 실습 라이브러리 설치 pip install fastapi pip install uvicorn pip install jinja2 main.py 생성 # main.py from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} # "/" 주소는 이 딕셔너리를 보여준다 @app.get("/items/{item_id}") def read_item(item_id, q): # item_id와 주소뒤에 ?q="예시" 에서 예시를 q로 받는다. return {"item_id": item_id, "q": q} # "/items/{item_id..

FastAPI 2023.10.09

정렬 알고리즘 구현해보기

선택 정렬 배열에서 최솟값을 찾는다. 최솟값이 배열의 맨 앞 원소보다 작으면 자리를 교체한다. 맨 앞의 원소를 제외하고 반복한다. mylist = [199, 22, 33, 12, 32, 64, 72, 222, 233] def 선택정렬(mylist): min_index = 0 # 최소 인덱스 기본을 0으로 count = 0 # 몇번 반복했는지 for _ in range(len(mylist)): # 배열 길이 만큼 반복 for i in range(count, len(mylist)): # count부터 시작(1번 반복했으면 배열 0번째는 젤 작은 수이니 빼고 시작) if mylist[i] < mylist[min_index]: # 배열의 최솟값 인덱스 찾기 min_index = i mylist[count], m..

스택, 연결리스트 구현해보기

1학년때 c언어로 구현하면서 되게 어렵다고 생각했던 기억이 나네.. 노드 클래스 class Node: def __init__(self, data): self.data = data self.next = None def __str__(self): return str(self.data) def __repr__(self): return str(self.data) 스택 클래스 class Stack: def __init__(self, mylist): self.head = Node(mylist[0]) current = self.head for i in range(1, len(mylist)): if current.next == None: current.next = Node(mylist[i]) current = curr..

Python 실습 - 셀레니움으로 크롤링(이었던것)

파이썬 처음 공부할 때 셀레니움으로 크롤링 했던것을 다시 한번 살펴보자 혼자 열심히 구글과 고군분투해서 뿌듯했던 기억이 있다. 물론 지금 보면 코드가 맘에 안든다. 핫딜 게시판을 크롤링해서 csv파일에 중복된 항목이 나올 때 까지 페이지를 넘겨가며 csv파일에 저장하는 방식이다. 모듈 import 많은 import들.. 셀레니움은 크롬드라이버가 계속 속을 썩여서 BeautifulSoup이 더 편한것 같다.. from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.support.ui impo..

Python 2023.09.24

Python 실습 - 핫딜 크롤링 해보기

원래 목표는 핫딜 게시판을 크롤링하는 py파일을 만들어서 그걸 매 시간 정각마다 실행되도록 외부 서버를 이용한 후, 만약 새 글이 올라왔으면 나에게 알림을 보내는 것이었지만 아직 그렇게 까지 하기에는 실력이 부족하기도하고 귀찮기도해서 일단 크롤링만 해보았다. 예전에는 셀레니움으로 했었는데 이번엔 BeautifulSoup으로 해봄. 모듈 import from bs4 import BeautifulSoup import requests import re 내가 검색하고싶은 키워드 정하고 url입력한 후, 잘 응답했는지 확인 난 애플워치 스테인리스를 싸게 사고싶으니까 애플워치로 함 mykeyword = '애플워치' # 검색하고싶은 키워드 res = requests.get(f'https://www.fmkorea.co..

Python 2023.09.24