전체 글 88

WIL 팀프로젝트

이번 주는 장고로 팀프로젝트를 진행하였다. 장고라는 웹 프레임워크에 대한 이해와 기초적인 베이스 서버와 클라이언트가 데이터를 주고 받는 방식에 대한 이해가 필요한 과제였다. 다음 사항들은 내가 장고로 팀프로젝트를 진행하면서 아쉬웠던점.., 그리고 맘에 드는점을 정리한 것이다. 맘에드는 점 1. 필수 구현 사항들을 전부 만들었다. 로그인, 회원가입, 그리고 게시물 작성, 수정, 삭제를 구현 하였고 회원정보를 장고의 기능 ORM 을 이용하여 DB를 구현해 관리하였다. 아쉬운점 1). 팔로우 기능을 구현하지 못했다. ManyToMany 모델을 이용하여 자기자신을 참조해 모델을 만들어서 팔로우 기능을 구현하려고 하였으나 이와 같은 문제들이 발생 1. 데이터를 받아오지 못함 , 데이터 베이스는 만들어 졌음 2. ..

카테고리 없음 2023.04.17

파이썬과 장고에 대하여 오늘 깨달음

파이썬의 딕션너리는 키-값 쌍으로 데이터를 저장하는 자료이다. 그런데 여기서 키는 고유해야 하므로, 동일한 키를 가진 항목이 여러개가 있을 경우 마지막 값만 유지된다. diction = {'fruit':'apple', 'fruit':'banana','fruit':'melon'} print(diction) 그래서 여기에서는 {'fruit': 'melon'} 이렇게 멜론만 출력된다. class.objects.get 은 장고에서 사용하는 메서드로 데이터베이스에서 객체를 가져온다. Django는 객체 관계형 매핑(Object-Relational Mapping, ORM)을 사용하여 데이터베이스와 상호작용할 수 있도록 도와주는 웹프레임워크로, class는 장고모델 클래스를 , objects는 해당 모델의 데이터베이..

코딩/python 2023.04.13

타입별 메서드

문자열 매서드 count: 문자열 내에서 어떤 문자열이 얼마나 나오나 find: 문자열 내에서 특정 문자열이 처음 나오는 위치를 찾아주는 메서드 없을 경우 -1 return index: 문자열 내에서 특정 문자열이 처음 나오는 위치를 찾아주는 매서드 없을 경우 밸류에러 (트라이 익셉트 사용) join: 특정 문자열을 기준으로 다른 문자열들을 합쳐주는 메서드 ex) os.path.join 경로를 합쳐주기 위해서 사용 upper: 모든 소문자를 대문자로 lower: 모든 대문자를 소문자로 문자열을 검색 할때 대소문자에 구애받지 않고 하고 싶을때 "python" "Python" "PYTHON" "PyThoN" == python PYTHON == python false replace 문자열 내에서 특정 문자열을..

카테고리 없음 2023.04.12

Django 모델 설계

Django를 데이터베이스 없이 쓸수 있더라도 데이터베이스 레이아웃을 파이썬 코드로 표현할 수 있는 object-relational mapper 가 같이 딸려옴 데이터베이스를 자동으로 생성해주는 Django command-line 유틸리티 $ python manage.py makemigratilns $ python manage.py migrate makemigration 명령은 생성 가능한 모델을 찾아 테이블이 존재하지 않으면 마이그레이션을 생성 migrate 명령은 마이그레이션을 실행하고 사용자의 데이터베이스에 테이블을 생성 , //데이터베이스 스키마, 관계형 데이터베이스에서 데이터가 구조화되는 방식을 정의 여기에는 필드, 데이터유형, 그이고 이러한 엔티티(개체)간의 관계등 논리적 제약조건이 포함 스키..

코딩/Django 2023.04.12

WIL 4주차 ,

지난 주차에 대한 회고 지난 주차에 배운것들 , 그리고 한 것들 1. 장고 지난 주차에서는 장고라는 것을 새로 배웠다. 장고는 웹프레임워크로서 웹페이지를 만들때 필요한 도구들을 제공해 주는 일종의 라이브러리이다. 내가 이해한 바가 맞다면... 장고안쪽의 폴더를 앱이라고 부르며, 장고는 데이터베이스를 파이썬 class 형태로 저장할 수 있다. 장고에서는 내가 데이터베이스를 만들었다면 장고에게 알려줘야 한다. makemigration 과 migrate 를 통해서... 2. 깃허브를 이용한 협업 브랜치를 이용한 버전관리 브랜치를 이용하여 버전을 쉽게 관리할 수 있다. 브랜치마다 커밋을 쌓으며 따로 개발할 수 있다. 물론 나중에 합칠 수 도 있다. 머지 라는 것이다. 깃허브에 풀리퀘스트 보내기 깃허브를 통해서 ..

카테고리 없음 2023.04.10

장고 프로젝트 해설, feat 포스트맨

포스트맨으로 시연 하겠다. 포스트맨: html에서 장고에서 리퀘스트를 보낼때 그걸 대신해주는 프로그램 프론트를 대체해서 사용한다. 워크스페이스 생성해서 공유할 수 있다. 협업할 때 씀 가장먼저 할 일 venv 생성 pip install django pylint 와 오토패팔 django admin startproject musinsa . 뒤에 점 찍는 이유는 새로운 폴더를 만들지 않겟다. 현 경로에서 만드냐 기본적인 세팅은 되었다. 모델링 장고 모델링 , 입출고 합산기능 python manage.py startapp user python manage.py startapp product settings.py 에 인스톨드 앱스에도 추가 django-admin startapp testz 구조를 만들고 코드를 짬..

코딩/Django 2023.04.10

장고에서 form 과 model 은 어떻게 다른가

Django 에서 Form 과 Model은 서로 다른 개념이다. model 의 경우 데이터베이스의 테이브로가 1대 1로 대응되는 클래스이다. 모델은 데이터를 검색하기 위해 사용된다. form은 사용자 입력을 처리하고, 이를 적절한 형식으로 변환한 후, 저장하거나 화면에 보여주기 위해 사용된다. Django에서 Form은 HTML의 Form 과 유사하게 작동되며, 사용자로부터 데이터를 입력받는 기능을 수행한다. Form을 사용하면 사용자 입력 데이터의 유효성 검사를 쉽게 수행할 수 있다. Django에서 Form을 사용하는 방법은 다음과 같다. 1. forms.py 에 Form 클래스 정의 from django import forms class MyForm(forms.Form): name = forms.C..

코딩/Django 2023.04.07

Git $ Github 특강

git bash 열기 git init, commit 작업 내역 비교하기 working directory stage repogitory 내가 가장 최근에 만든게 이전것과 뭐가 달라졌는가? git diff 비교 git diff --stage git diff 순서 주의 작업 되돌리기 충분한 연습이 필요함 revert : 버전을 되돌린 새로운 버전 만들기 reset : 버전을 완전히 되돌린 브랜치 관리하기 버전을 여러개의 흐름으로 관리하는 방법 if 브랜치가 없다면 하나로 합칠 경우에 문제가 됨 서로의 작업과 전혀 관련없는 부분, 같은 코드를 다르게 수정해줘여함 브랜치는 버전의 분기 브랜치를 나눈다. 각자의 브랜치에서 작업한다. 필요하다면 나눈 브랜치를 합친다. git branch 브랜치 생성 git branc..

카테고리 없음 2023.04.06

장고 2 주차

Django 를 실행시키고 관리하기 위한 명령어 Django 의 ORM 을 알아보기 Database 와 연동하여 사용 Admin 기능 알아보기 사용자 모델을 만들고 사용자 관리 기능을 구현 (회원가입 / 로그인) 프로젝트 구조 만들기 지난주차에 한것 -> 기본적 기능들 그냥 구현하기 프로젝트 구조; 장고의 각 파일들이 어떤 역할을 하는지 알아보자 User, Url, View, Model, DB Url, View 에서 주로 작업 구현할 기능 사용자 관리 글쓰기 친구만들기 사용자 / 글 django-admin startapp 데이터베이스와 장고 ORM =

코딩/Django 2023.04.04

최빈값 구하기

문제 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 본 문제는 프로그래머스에서 가져온 것입니다. 제가 오늘 푼 문제중에 인상깊은 문제였기 때문에 리뷰를 해보고자 블로그에 가져와 봤습니다. 접근 일단 저는 가장 많이 나온 값이 무었인지 알아야 하므로 이중으로 for 문을 돌려서 array의 원소별로 몇번이나 나왔는지 카운트 해주려고 했습니다. 그러나 그렇게 하면 array의 갯수만큼이나 값을 저장할 변수가 필요해서 비효율적이라고 판단 딕셔너리로 풀어보기로 했음 예를 들어 [1, 2, 3, 4, 5, 5, 2 ] 라는 리스트가 있으면..

카테고리 없음 2023.04.04