Backend/Python25 [FastAPI] Project Levup - 회원가입과 로그인 기능 만들기 개인적으로 사용할 용도이긴 하지만, 주변 사람들에게 소개하면서 사용을 권장하기 위해 간단한 회원 가입 기능을 만들어 두려고 한다. 회원 가입 기능을 만들기 전 몇 가지 패키지 설치가 필요하다 pip install PyJWT pip install hashlib 위의 패키지는 로그인 시 사용자 정보와 만료 기간을 담기 위한 토큰을 생성하기 위한 패키지와 사용자 암호를 DB 에서 조회했을 때 알아볼 수 없도록 해싱하기 위해 필요한 패키지이다. 1. 회원가입 기능 만들기 from pydantic import BaseModel db = {} class Users(BaseModel): id : str email : str password : str @app.post("/api/signup") def signup(U.. 2023. 11. 16. [FastAPI] Project Levup - 시작하기 깃허브 호스팅을 통해서 간단한 메모 페이지를 만드려고 했는데, 교차 기기 환경에서도 메모가 유지될 수 있도록 구성하려고 하니 여러 문제가 마음에 걸려서 진행하지 않고 있다가 최근에 자주 보거나 사용하는 기능들을 모아서 개인적인 용도로 사용하는 페이지를 만들어 보면 어떨까 싶어서 새로 시작하게 되었다. 서버 구현을 어떤 프레임 워크로 할지 탐색해 보다가, python 언어로 구현이 가능한 프레임 워크 중 가장 빠르다고 하고 이전에 경험이 없었던 FastAPI 를 사용해 보기로 생각했다. (MAC OS) 1. 가상 환경 설치하기 프로젝트에 사용하는 패키지 버전이 기존에 설치된 버전과 충돌이 일어나지 않도록 가상 환경을 구현하자 python3 -m venv .venv 가상환경 설치가 완료되면 가상환경을 구동하.. 2023. 11. 14. [Python] tkinter - 예약 타이머 만들기 - 기능 추가 2 지금까지 만들었던 기능은 최대 24시간 내 실행 시간 예약이 가능하도록 구현되었다 ( 날짜 지정 기능이 없으므로 ) 추가적으로, 특정 일자에 실행을 예약하고 싶다는 니즈를 확인하여 실행되는 날짜까지 지정할 수 있도록 기능을 추가하였다. 날짜를 지정하기 위해 다양한 방법을 선택할 수 있겠지만, 다른 UI 구성을 tkinter 로 구성했으므로 동일한 패키지에서 제공하는 달력 UI를 사용하기 위해 tkcalendar 를 설치하였다. pip install tkcalendar 설치가 완료되면, 기존에 있던 코드에 달력 UI를 추가시키기 위한 작업을 진행하자. from tkcalendar import DateEntry # 이하 이전 코드들 calendar = DateEntry(window, width=200) ca.. 2023. 11. 14. [Python] tkinter - 예약 타이머 만들기 - 기능 추가 이전 글에서 UI를 구성했으므로, 예약한 시간에 맞춰 다른 프로그램이 실행될 수 있도록 현재 시간과 예약 시간을 확인하고, 실행 여부를 판단하는 로직을 추가했다. 1. 현재 시간과 예약 시간 확인하기 import tkinter, time, datetime, sys from tktimepicker import AnalogPicker, constants from tkinter import filedialog, messagebox file = filedialog.askopenfilenames(initialdir="/", title="파일명 선택") if not file: messagebox.showwarning("오류", "파일을 선택하세요") sys.exit() window = tkinter.Tk() win.. 2023. 11. 10. [Python] tkinter - 예약 타이머 만들기 - UI 구성 간단한 크롤러 제작 요청이 와서 bs4 + Selenium 으로 파일을 만든 다음 exe 파일로 변환하여 전달을 했는데, 실행할 시간대를 정할 수 있는 기능을 넣어달라는 요청이 왔다. 시간대를 정하게 하려면 프로그램 시작 때 프롬프트에 예약 실행 시간을 적어두게 할까 생각했는데 기본적으로 컴퓨터를 사용하지 않을 시간에 예약 기능을 쓸 것으로 생각되어 입력 실수로 인해 제대로 실행되지 않을 것을 감안해서 화면을 보면서 조정 가능하게 만드는게 더 나을 것 같다고 판단했다. PyQt5 를 사용 해야 하나 생각했는데, 사용자가 UI에 큰 신경을 쓸 것 같지 않았고 무엇보다 레이아웃을 신경쓰면서 프로그램을 제작하기에는 예상한 것 보다 시간이 더 소요될 것 같아서 얼마 전에 활용해 본 tkinter 로 간단하게 제.. 2023. 11. 9. [Python] Flask 배포와 개발 환경 pip freeze Flask 미니 프로젝트 완성 후 aws를 통한 배포를 위해 1. 배포용 디렉토리 생성 2. 1의 하위로 개발 진행한 파일들 복사 3. 개발 환경에서 사용한 패키지와 버전 기록 (pip freeze > requirement.txt) 4. aws 배포 환경 구성 후 배포 의 순서대로 진행하였며, 배포까지는 원활하게 이뤄졌지만, 확인해보니 502 error 을 확인하였다. aws 로그를 확인해도 정확한 원인을 알 수 없었는데, 멘토님의 도움으로 확인하는 방법을 알았다. 아래의 방법은 당시에 발생했던 문제의 국한된 것으로 모든 에러를 확인하고 조치할 수 있는 것은 아님을 알려드립니다. 1. aws 환경 > 로그 > 전체 로그 다운로드 2. 다운로드 받은 폴더 > log > web.stdout.log 파일 확인.. 2023. 4. 1. 이전 1 2 3 4 5 다음