URL convention url 마지막에는 항상 trailing slash '/' 장고는 슬래시가 없는 URL로 요청이 들어오면 해당 URL과 딱 맞는 패턴이 있는지 먼저 보고, 없다면 / 슬래시 붙인 URL로 리다이렉션하는 기본 설정이 있음. 앞에 슬래시(/)가 있으면 도메인으로 부터의 경로를 의미 현재 codeit.kr/food/ 에 있다고 하고 이동하기 버튼을 누르면 codeit.kr/food/banana/가 아닌codeit.kr/banana/로 이동하게 됩니다. 마찬가지로 이동하기(앞 슬래시 없음) 의 경우에는 codeit.kr/food/banana/ 으로 이동됨
클라이언트에게 request를 받았을 때 장고 앱 내부에서 일어나는 일련의 과정 경로와 내부 로직을 매칭시켜나가는 과정 1. settings.py에서 시작 settings.py의 ROOT_URLCONF = 'tutorial_hub_project.urls' 에서 장고가 url을 보고 가장 먼저 봐야할 파일을 프로젝트의 urls로 가라고 자동으로 지정해둠. 2. 프로젝트 urls.py 에서 매치되는 패턴이 있는지 확인함 urlpatterns = [ path('', include('hub.urls')), 만약 url의 구조가 domain/hub/index 였다면 이번에는 hub까지는 매칭이 됨. 따라서 hub 앱으로 가서 urls.py를 보러감 3. 앱 urls.py에서 매치되는 패턴 확인 index/와 매치..

첫 장고 웹사이트를 지인들에게 보여줬다. 다양한 피드백을 받았는데, 특히 개발자 친구는 날카롭게 포인트를 집어줬다. 프로젝트를 하면서 만난 이슈는 나의 자산 프로젝트 진행하면서 수없는 문제를 만났지만 그 중에서도 어려웠던 문제들과 솔루션은 꼭 정리해두기 실제 버그 필터 / 리스트 리셋 사용자는 필터 적용 후 선택한 기준이 필터에 남아있기를 바랬다. 리셋 버튼을 누르면 페이지가 아닌 리스트 자체 리셋이 된다. 페이지네이션과 필터 때문에 뷰가 복잡해져서 사이트 리셋으로 대체해놓았던 것 유저 로그인, 등록시 에러 메세지가 보이지 않는 현상 form 자체를 바꿔야 할지도 모르겠다. 코멘트 수정, 삭제 버튼 익명 유저도 코멘트를 달 수 있게 만들어 놓아서 복잡해졌다. 삭제, 변경하려면 권한, 비밀번호를 설정하게 ..
Issue: 추가 버튼을 누르면 def add_to_curriculum()이 실행되고 return redirect("hub:home") 으로 홈페이지로 보내지는 상황. 홈페이지의 특정위치, 아래에 위치한 필터로 바로 이동시켜주고 싶음 urls.py에서 path('#home-filter', views.HomeView, name='home-filter'), 를 추가했지만 url encoding의 결과로 다음과 같이 url이 변경되고 (# -> %23) 기대한 위치 이동 효과가 적용되지 않음. [12/Jul/2021 14:43:23] "GET /%23home-filter HTTP/1.1" 200 16263 Solution: urls.py 에서 url을 설정해주지 않고 hltml과 view에서 해결되도록 함 h..
Issue: 배포 연습 중 debug=False 로 셋업했더니 로컬호스트 주소에서 미디어 파일이 로딩되지 않음. e.g. "GET /static/css/bootstrap.min.css HTTP/1.1" 404 179 Solution: debug 모드를 켜면(==True) 에러의 디테일한 사항을 설명해준다. False의 상황에서는 ALLOWED_HOSTS 가 세팅되어야 있어야 하고, 미디어, 스태틱 파일의 엑세스가 제한된다. 즉 웹서버를 통해서 제공해야 함. TheDEBUG=True, if there is error, page will show details of error. ifDEBUG=False, theALLOWED_HOSTSofsettings.pywill work, you should take ca..

출처: https://nerogarret.tistory.com/45 인덱스 인스턴스 생성 키페어 설정 (pem 키) AWS EC2 서버 원격 접속 AWS EC2 서버 기본 세팅 Github repository로 프로젝트 업로드 uWSGI 연결 환경: windows git bash 사용 Part1 AWS 서버 대여 프로젝트 준비 인스턴스 생성 1-7 단계에서 1,2,7 단계만 선택. 보안 그룹 등 나머지는 추후에 설정 변경 예정 키페어 설정 (pem 키) 컴퓨터에 저장하는 키, 잃어버리면 재발급 불가 홈폴더의 .ssh 를 만들고 pem키 이동 ssh는 외부 컴퓨터와 원격 통신을 할 때 쓰는 명령어 $ mkdir ~/.ssh/ or 이동 cd ~/.ssh/ 키페어 파일의 권한을 소유주만 읽을 수 있도록 변경..

index git status git history git blame[파일이름.py] git show [커밋아이디] git diff [커밋 id] [이후 비교대상 커밋 ID] git log git reflog 📌 git status staged 여부 확인 Changes to be committed: modified: calculator.py Changes not staged for commit: modified: License 📌git history tbc 📌git blame [파일이름.py] + git show [커밋아이디] blame은 비난하다. 탓하다 라는 의미 어떤 파일의 특정 코드를 누가 작성했는지 알아내기 위한 커맨드 git history 커맨드에서 특정 코드의 커밋 아이디를 알 수 있다. g..
git revert revert의 뜻은 "return to (a previous state, practice, topic, etc.)." 이전 상태로 돌아간다는 return의 뜻이다. 즉, 커밋을 직접 지우지 않고 이전으로 되돌린다. 로컬과 리모트 간에 머지 컨플릭트를 일으키지않고 이전 커밋으로 돌아갈 수 있는 방법이다. e.g. 동일 "revert" 동일 commit 1 - commit2 - commit 3 commit 1과 3은 동일한 커밋이다. git reset과 다른점 리모트에 푸시한 상황에서 git reset을 쓰면 로컬의 헤드가 가리키는 브랜치가 이전 커밋으로 이동한다. 즉 로컬이 리모트보다 뒤쳐진 상황이됨. 이 상태에서 로컬->리모트 푸시를 하게되면 리모트에 최신커밋(로컬에서는 리셋한 커밋)..

100 Days of Code - The Complete Python Pro Bootcamp for 2021 Day 67 - Advanced - Blog Capstone Project Part 3 - RESTful Routing Goals: Building a RESTful Blog with Editing! CRUD로 글 수정 기능을 가진 블로그 만들기 set FLASK_APP=mian.py set FLASK_ENV=development (한번 지정해 놓으면 계속 사용가능) 서버 시작 flask run 서버 연결 끊기 ctrl + c Requirement 1 - Be Able to GET Blog Post Items 1. 데이터베이스에서 모든 데이터를 가져오려면 db.session.query(BlogPo..