django를 마져 배워 보도록 하겠습니다.
어제 까지는 url 를 만들고 html를 만들어서하는 방법을 했다면
이제는 에쁘게 정리를 하는 방법을 알아보겠습니다.
앱 파일 분할 하기
하나의 articles 파일에서 html을 만들고 작성을 했지만 user에 관한 기능을 따로 파일로 뺴서 정리를 하고 싶다면??
일단 파일을 새로 만들어 주면 된다!?
먼저 세로운 앱을 생성을 하고!
프로젝트 셋팅 파일에 등록하는 것도 잊으면 안됩니다!
그리고 한곳에서 작성이 되었던 urls의 파일 내부도 각각의 파일에 분할을해서 넣어 줄수 있는데!
각 articles파일과 users파일에 urls파일을 만들고 거기에 내가 원하는 부분의 urls를 따로 넣어주면 됩니다.
하지만 여기서알아야 하는부분은 우리가 주소를 입력하고 들어오게 되면 프로젝트의 urls의 들어오게 되는데 그러면 어떻게 알맞는 주소로 찾아 갈 수 있을까??
답은 위와 같이 path('articles/', include("articles.urls")) 로 articles/hello/로 입장했다면 앞부분인 articles/로 검색하고 나머지의 해당하는 부분은 include("articles.urls")를 통해서 해당 파일에 있는 urls에서 판단을 해서 내보낼 수 있도록 할 수 있습니다.
여기서 알아 두어야 하는 것은 기존에 urls에서는 ariticles파일에 있는 views를 가져와서 썻지만 지금은 각 해당 파일에 있는 views를 써야 하기 때문에 from . import views를 적어서 각 파일에 views를 적용시킬 수 있습니다.
그리고 앞부분에서 articles/를 검색하고 왔기 때문에 articles/를 제외한 뒷부분을 적어서 url를 만들면 됩니다.
그리고 또 신기한거 우리가 get방식을 쓰면 주소의 값을 변수로 가져올 수 있는데 get이 아닌 url에서도 변수를 받아서 올 수 있습니다. <str:username>이렇게 적어준다면 users/profile/billy/라고 입력을 한다면 billy라는 변수를 아래와 같은 방법으로 사용 할 수 있습니다.
주소에 별명 넣기
클릭을 할때 주소를 이동 시켜주는 기능을 넣는데. 만약 주소가 변경이 된다면 html에 있는 모든 주소를 변경을 해주어야 하는데... 이런방법을 해결 해주기 위해서 주소에 별명을 넣어주는 방법이 있다.
사진과 같이 urls.py에서 주소 뒤에 name=을 넣어서 별명을 설정해 줄 수 있다. 그 다음은 주소를 넣는 칸에 별명을 대신 입력을 한다면?
이제 주소의 값이 변경이 되어도 별명으로 찾아갈 수 있기때문에 적용하기 쉬워진다.
모델 DB 만들기
이제mtv에서 m에 해당하는 모델을 만들어 볼 것인데. 각 앱 파일에 있는 모델에 들어가서 클래스를 만들고 models.Model을 상속 받으면서 시작한다.
각 스키마를 정의를 할 때에 모델.형식(속성)을 정의 하여 줄 수 있습니다.
추가로 날짜를 자동으로 넣어주는 것도 되는데.
(auto_now_add=True) : 맨 처음 추가 되었을 때에 기록
(auto_now=True) : 변경이 될 때 마다 기록
모델 관리하기
클래스명.매니저이름.명령어 의 구조를 가지고 있으며 DB를 CRUD할 수 있습니다.
매직메서드라는 것 >>> 뭔지 모르니 알아보자.
파이썬(python) - 매직 메소드(Magic method) (tistory.com)
파이썬(python) - 매직 메소드(Magic method)
매직 메소드(Magic method)란? - 매직 메소드는 파이썬에서 사용되는 특별한 메소드들을 의미합니다. 스페셜 메소드(Special method)나 던더 메소드(Double UNDERscore method)라고 부르기도 합니다. 이들은
tibetsandfox.tistory.com
뭔가 알것 같으면서도 모르겠다..ㅎ
Making queries | Django documentation | Django (djangoproject.com)
Making queries | Django documentation
The web framework for perfectionists with deadlines.
docs.djangoproject.com
데이터 베이스 입력 및 저장!
form을 이용해서 get방식으로 입력한 값을 views로 넘겨줌
받은 데이터를 저장하는 방법 Article.objects.create(title=title, content=content) 이렇게 하면 굳이 save()를 사용하지 않아도 저장을 할 수 있습니다.
그리고 조회하기
Article.objects.all()를 이용해서 모든 데이터를 가져올 수 있으며 order_by()를 이용해서 특정 값의 순서대로 가져올 수 있으며, 값앞에 -를 붙여서 역순으로 가져오는 것도 가능 합니다.
그렇게 해서 for문을 이용해서 하나씩 출력 할 수 있습니다.
게시글 수정 삭제를 만들 수 있습니다.
'코딩 교육 TIL' 카테고리의 다른 글
2024-04-12 AI 코딩 TIL (0) | 2024.04.12 |
---|---|
2024-04-11 AI 코딩 TIL (0) | 2024.04.11 |
2024-04-08 AI 코딩 TIL (0) | 2024.04.08 |
2024-04-05 AI 코딩 TIL (0) | 2024.04.05 |
2024-04-04 AI 코딩 TIL (1) | 2024.04.04 |