첫 번째 장고 앱 작성하기, part 6 따라해본 것을 기록 🏋️♀️ 그동안 만든 Poll앱에 stylesheet와 image를 추가해볼 것입니다. 정적 파일이란 web application을 만들때, 서버에서 생성된 HTML을 제외하고 전체 웹 페이지를 렌더링하는 데 필요한 추가적인 파일들을 제공해야합니다. 예를 들어 이미지, JavaScript, CSS가 있습니다. 장고에서는 이런 파일들을 "정적 파일" 이라고 부릅니다. 작은 프로젝트에서는 웹 서버가 정적 파일을 찾을 수 있는 곳에 보관할 수 있기 때문에 큰 문제가 되지 않습니다. 그러나 대규모 프로젝트에서는 특히 각 애플리케이션이 제공하는 여러 정적 파일 세트를 처리하는 여러 앱으로 구성된 프로젝트라면, 까다로워지기 시작합니다. 그래서 djang..
Question의 pub_date가 미래로 설정되어있다면, 미래의 그 시기가 되면 해당 질문이 게시되지만 그 전 까지는 질문이 보이지 않아야합니다. 하지만 현재 poll 앱은 pub_date필드가 미래인 질문까지도 포함하여 게시합니다. 이것을 뷰 테스트와 함께 개선해보겠습니다. 테스트 환경 및 클라이언트 세팅 Django는 뷰 레벨에서 코드와 상호 작용하는 사용자를 시뮬레이트하기위해 테스트 클라이언트 클래스 Client를 제공합니다. 이 테스트 클라이언트를 tests.py또는 shell에서 사용할 수 있습니다. 우선 Shell에서 먼저 사용해보겠습니다. 아래 코드로 Shell을 열고 Shell에서 테스트 환경을 setup 해주세요. django.test.utils 문서를 보면 test환경을 setup, ..
[1] HTML 스타일 그대로 로드하기 (with 커스텀 설정) UILabel에 HTML 스타일 그대로 로드할 수 있습니다. (폰트나 색깔 같은 것을 커스터마이징 할 수 있음) 예를들어 또는 태그로 감싸진 것을 볼드처리 해주고 html 태그들을 지워주고 html entity 들을 디코딩해줍니다. (html entity표 = 영어버전 및 한글버전) 저는 css style을 참고해서 extension을 만들었고 이런식으로 쓸 수 있습니다. 돌려보면 이렇게 스타일이 적용되고 + 으로 인코딩되었던 + 도 디코딩되어서 나옵니다..!! 참고로 저는 paragraph 스타일만 정의해줘서 html에 h1 같은 태그가 있으면 안먹힐 거에요..! css문서보니까 h1 스타일을 따로 정의해주더라구요...!+! 하지만 지금 ..
첫 번째 장고 앱 작성하기, part 5 를 따라해본 것을 기록 ⛷ polls 앱을 만들었는데 여기에 자동화된 테스트를 작성할 것입니다. 자동화된 테스트 자동화된 테스트란 무엇일까요 -? 이전 튜토리얼 2장에서 shell 을 사용하여 메소드의 동작을 검사하거나 애플리케이션을 실행하고 어떻게 작동하는지 확인하기 위해 데이터를 입력해서 테스트했습니다. 이것은 우리 손으로 직접 돌린 수동 테스트입니다. 반면 자동화된 테스트란 시스템에서 테스트를 돌려주는 것입니다. 한 번 테스트 세트를 작성한 이후에는 앱을 변경할 때 수동 테스트를 수행하지 않아도 원래 의도대로 코드가 작동하는지 확인할 수 있습니다. ==> 튜토리얼의 설명을 요약하자면, 일일이 shell에 찍어보지 않아도 테스트들을 작성해두면 아래의 명령어로 ..
https://api.github.com/users/사용자이름 으로 요청하면 아래 같이 Github user 정보가 들어있는 JSON을 줍니다. localhost:8000/rest-api-test/user?username="사용자이름" 으로 접속하면 저 api를 호출해서 JSON을 넘겨주도록 만들어보겠습니다 :-) 우선 rest_api_test > urls.py의 urlpatterns에 다음과 같은 path를 추가해주세요rest_api_test/user/ 로 들어오면 GithubUserView를 호출하겠다! 하는 코드 입니다. rest_api_test > views.py 에 가서 GithubUserView를 만들어주세요 그리고 테스트해보면 JSON을 잘 넘겨주는 것을 볼 수 있습니다. 한 단계 더 나아가..
이 포스팅은 총 2단계로 이루어집니다. 👉 1단계 : HTTP Request를 잘받는 지 확인 + GET 요청에는 더미 JSON 주기👉 2단계 : 실제 HTTP Method 동작을 하며 데이터를 건들이기 1단계 장고의 View 는 아래의 HTTP method를 받아줍니다. 그 중 GET, POST, PUT, DELETE 이 4가지를 받아보겠습니다. 우선 앱을 하나 만들어주겠습니다 :-) 저는 튜토리얼에서 만들었던 mysite 프로젝트에 앱을 추가할 것이고 rest_api_test 라는 이름으로 추가하겠습니다. 앱을 만들었으니까 프로젝트에 추가하는 작업을 해주겠습니다.앱을 만들면 rest_api_test > apps.py 에 이런 코드가 자동으로 생겨있습니다. mysite > settings.py에 가서 ..
이번 포스팅은 적은 코드를 위해 제네릭 뷰 를 사용하는 법을 배웁니다 우리가 여태까지 작성했던 views.py 코드를 보면 뷰가 하는 동작이 공통적임을 알 수 있습니다. 뷰는 URL에서 전달 된 매개 변수에 따라 데이터베이스에서 데이터를 가져 오는 것과 템플릿을 로드하고 렌더링 된 템플릿을 리턴하는 기본 웹 개발의 일반적인 경우를 나타냅니다. Django는 이런 매우 일반적인 경우를 위해 "제너릭 뷰" 라는 지름길을 제공합니다. Generic View를 사용하도록 poll 앱을 바꿔볼 것 입니다. 1) index view index함수는 이렇게 생겼고 index.html 이라는 템플릿을 사용하고 있습니다. 아래와 같은 화면을 보여주는 html 코드 였습니다. 장고의 generic view 들 중, 리스트..
첫 번째 장고 앱 작성하기, part 4 를 따라해본 것을 기록 😎 4장에서는 Web-poll application을 마저 만들고 코드를 줄이는 것을 배워본다고 합니다. http://localhost:8000/polls/1/ (1은 question_id) 이 스타일의 URL로 접속할 때 보여주는 투표 상세 템플릿("polls/detail.html")을 수정하여, 템플릿에 HTML 요소를 포함시켜 봅시다. polls > detail.html을 아래와 같이 변경해주세요 이런 화면을 보여주는 코드 입니다. 이 라인에 주목해주세요 각 질문이 있고 선택할 수 있는 항목들(choice들)이 쭉 있는데, 선택항목들을 라디오 버튼으로 표시하네요 각 라디오 버튼의 value는 연관된 choice의 ID입니다. 각 라디오..
이전 포스팅에서 localhost:8000/polls/ 로 접속하면 index.html 이라는 템플릿을 보여줬습니다. index.html은 이렇게 구현되어있습니다. 그래서 저 목록 아이템을 누르면 polls > urls.py 에 있는 urlpatterns 중, "/polls/question.id/" 에 매칭되는 detail함수를 불러주고 polls > views.py에 있는 detail 함수는 이렇게 생겼기 때문에 이런 화면을 보여주게 되는거죠 index함수를 템플릿을 만들어서 연결시켜줬던 것 처럼 detail함수도 작업을 시작하겠습니다. polls/templates/polls 디렉토리에 가서 detail.html 파일을 만들어주세요. 템플릿 문서에 보면 {{ }} 는 변수를 의미하고 context로 부..
첫 번째 장고 앱 작성하기, part 3 따라 해본 것을 기록 🍯 이번 튜토리얼에서는 view를 만들어봅니다. poll 앱에 필요한 4개 뷰를 만듭니다. polls > views.py 에 뷰를 추가해주세요 (참고로 index함수는 Writing your first Django app, part 1 (2) 여기서 이미 만들어줬던 함수입니다.) polls > urls.py에 가서 urlpatterns를 추가합니다. 장고는 정의해둔 urlpatterns에서 매칭되는 URL pattern을 찾았다면 HttpRequest object를 가지고 넘겨준 view function을 call 합니다. 그래서 views 함수들의 첫번째 input에 모두 request라는 input을 받게 만들어줬습니다. 그리고 아까 추가..
- Total
- Today
- Yesterday
- Sketch 누끼
- 장고 Custom Management Command
- drf custom error
- cocoapod
- Flutter getter setter
- Watch App for iOS App vs Watch App
- 플러터 얼럿
- ribs
- Flutter Spacer
- SerializerMethodField
- METAL
- 장고 URL querystring
- flutter deep link
- Django Firebase Cloud Messaging
- flutter build mode
- 구글 Geocoding API
- Django FCM
- github actions
- Flutter Text Gradient
- PencilKit
- Python Type Hint
- 플러터 싱글톤
- DRF APIException
- Flutter 로딩
- Dart Factory
- flutter dynamic link
- ipad multitasking
- flutter 앱 출시
- Flutter Clipboard
- Django Heroku Scheduler
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |