localhost:8000/question/1 이렇게 생긴 URL을 만들고 싶다면 urlpattern을 아래처럼 추가하고 (참고로 앱이름 question입니다) APIView를 아래와 같이 작성하면 된다. 만약 쿼리스트링을 받고 싶다면 어떻게 해야할까?!?! 그러니까 이런 url을 제공하고 싶은 것이다!! localhost:8000/family_question/answer?question_id=1 url패턴은 기존처럼 유지하고 (참고로 스샷의 앱이름 family_question입니다) APIView에서 request.GET[''키값'] 으로 쿼리스트링의 value를 꺼내오면 된다. 잘됨 ☺️ [추가] 그리고 저는 특정 쿼리스트링이 있는지를 명시적으로 확인하고 없으면 더 이상 진행안하고 에러보내주도록 처리..
[1] 문서보기 문서 를 보면 getter와 setter는 object의 프로퍼티들에게 read, write 접근권한을 제공하는 특별한 메소드라고 합니다. 그리고 get, set 키워드를 통해 getter와 setter를 구현할 수 있다고 합니다. [2] 예제 Getter 이렇게 생긴 User모델과 UserManager가 있다고 해보겠습니다. UserManager가 user 프로퍼티를 다른 곳에 read-only로 제공하고 싶다!! 할때 getter를 구현해주면 됩니다. class User { String id; String nickname; User({ this.id, this.nickname }); } class UserManager { User _user; User get user => _user;..
[1] 문서보기 FutureBuilder 는 Future와 상호작용한 마지막 스냅샷으로 자신을 빌드하는 위젯(?) 이라고 합니다. 정의가 잘 안와닿는데, 사용용도를 보면 확 이해가 됩니다 API콜을 해서 응답을 받기 전까지는 로딩 위젯를 보여주고 성공 응답을 받으면 데이터를 보여주는 위젯을 보여주고 실패 응답을 받으면 에러메세지를 보여주는 위젯을 보여주고 싶을때 쓰는 위젯입니다. 문서에 예제가 너무 잘되어있는데 이런식으로 쓸 수 있습니다. (문서코드 복붙) class MyStatefulWidget extends StatefulWidget { MyStatefulWidget({Key key}) : super(key: key); @override _MyStatefulWidgetState createState(..
API 만들때 에러 메세지 정책을 어떻게 해주는 게 좋을까?! 를 많이 고민했습니다. (장고로 API 개발 + 플러터로 클라이언트 개발을 동시에 하고 있어가지구 이 정책에 따라 클라도 같이 바꿔해서,,,😶) 그래서 고민한 것들을 기록해두려고 합니다. 우선 크게보면 사용자가 얼럿으로 만나게 되는 에러메세지를 서버에서 결정할 것인지, 클라이언트에서 결정할 것인지 정해야하는 문제인데요 더 구체적으로 생각해보면 후보1) 서버: api에서 status code만 내려준다. 클라: api에서 내려주는 status code를 보고 클라이언트에서 에러메시지를 매핑한다. 후보 2) 서버: api에서 status code 뿐만아니라 개발자가 이해할 수 있는 에러메세지를 내려준다. (예를들어, header값이 올바르지 않습..
[1] Custom Exception Handling 이란 Custom exception handling 이란 API의 에러 응답(error response) 스타일을 내맘대로 핸들링할 수 있는 것을 말합니다. 현재 장고는 아래와 같은 스타일의 에러응답을 내려주도록 되어있는데요 { "detail": 장고의 에러메세지 } 에러 응답에 status_code 필드를 추가하는 등 에러 응답 스타일을 커스터마이징하고 싶은 니즈가 있을 수 있습니다-!! 이럴때 취할 수 있는 방법이 custom exception handler 만들기 입니다-!! [2] Custom Exception Handler 만들기 우선 저는 플젝에 utils라는 파일을 하나 만들었구요 문서에 있는 코드를 복붙해서 넣었습니다. from rest..
[문제] 무료 이미지 사이트에서 다운받은 이미지의 Background color가 화이트 입니다. 근데 이렇게 배경이 흰색으로 나오면 안되고 clear하게 나오면 좋겠습니다. 우선 디자이너 언니가 누끼따는 일(백그라운드 버리고 양파 캐릭터만 따오는 일)은 포토샵에서 엄청 쉽다고 합니다. 저는 포토샵이 없고 스케치만 있어서 스케치에서 하는 법을 전수받았습니다 🙇♀️ [해결] 1) 스케치에 이미지 파일을 끌어옵니다. 2) 이미지를 클릭하고 Edit을 눌러줍니다. 3) 요술봉을 클릭해줍니다. 4) 이미지의 하얀 배경을 눌러줍니다. 5) 키보드에서 Delete 키를 눌러줍니다. 하얀배경을 지워주겠다는 뜻-!! 6) Finish Editing을 눌러줍니다. 7) 마지막으로 Export해서 잘되었는지 확인해봅니다..
[DRF] 모델과 ModelSerializer 만들기 에서 모델을 JSON으로 쉽게 바꿀 수 있도록 해주는 ModelSerializer를 알아봤는데요, 만약- 모델에 없는 필드인데 JSON에 특정 필드를 추가해서 내려주고 싶거나 - 모델에 있는 값을 변경해서 JSON으로 내려주고 싶거나 (예를 들어 모델에는 fullName 필드가 있는데 JSON은 firtsName으로 내려주고 싶다던가) 할때는 어떻게 해야할까요?! SerializerMethodField 를 사용하면 됩니다. 이 필드에는 method_name을 지정해줄 수 있는데요, 안지정해주면 get_필드네임 메소드를 부른다라고 적혀있네요 예를들어 이렇게 생긴 Profile 모델이 있다고 할때 JSON으로 nickname 필드를 내려주고 test라는 ..
CupertinoAlertDialog 플러터에서 iOS 스타일의 얼럿을 만드려면 CupertinoAlertDialog 를 쓰면 됩니다. 생성자는 이렇게 생겼습니다. 예를 들어 이렇게 만들면 됩니다. CupertinoAlertDialog( title: Text("Alert"), content: Text("My alert message"), actions: [CupertinoDialogAction(isDefaultAction: true, child: Text("Close")), onPressed: null] ) showCupertinoDialog 그럼 얼럿을 만드는 법을 알았으니 어떻게 띄울수있는지 알아보겠습니다. showCupertinoDialog function을 사용하면 됩니다. 이렇게 생겼고 iOS-..
현재 내 컴퓨터에서 돌리고 있는 로컬 서버에 접속하려면 어떻게 해야할까요?! (저는 장고로 API 개발중이여서 장고 서버를 기준으로 한 글입니다.) 우선 시뮬레이터(iOS), 에뮬레이터(안드로이드)도 하나의 OS이기 때문에 여기서 localHost를 부르면 자기자신이 됩니다. (내 컴퓨터가 아니라) 그래서 앱에서 api 콜을 해봐도 서버에 연결이 안된답니다,, Android Emulator 네트워킹 설정 을 보면 10.0.0.2.2라는 특수주소로 접근할 수 있다고합니다. iOS Simulater는 또 다르게 해줘야하는데 (찾아본 여러 방법 다 안되서 적지 않을게요,,) 귀찮으니까 여기를 보고 장고 서버가 다른 컴퓨터에서도 접속할 수 있게 해보겠습니다. [1] 터미널에서 아래의 ..
플러터에서 화면전환을 하고 싶다면 Navigator와 CupertinoPageRoute를 보면 됩니다. CupertinoPageRoute 전체 화면을 iOS 전환으로 대체하는 모달 경로 (modal route) 라고 합니다. 생성자는 이렇게 생겼어요 이런식으로 이동하고자 하는 위젯을 builder에 넣어주면 됩니다. CupertinoPageRoute(builder: (context) => SignupWidget()) 그리고 fullScreenDialog 디폴트값이 false인데요, false이면 push처럼 동작하고 (오른쪽에서 왼쪽으로 새로운 페이지가 나타남) The page slides in from the right and exits in reverse. The page also shifts to ..
- Total
- Today
- Yesterday
- Dart Factory
- METAL
- 장고 Custom Management Command
- Flutter Clipboard
- DRF APIException
- Django FCM
- Sketch 누끼
- cocoapod
- 구글 Geocoding API
- Flutter Text Gradient
- ipad multitasking
- Django Heroku Scheduler
- flutter deep link
- Flutter 로딩
- SerializerMethodField
- Python Type Hint
- drf custom error
- flutter 앱 출시
- 장고 URL querystring
- Flutter Spacer
- Django Firebase Cloud Messaging
- 플러터 싱글톤
- flutter dynamic link
- Watch App for iOS App vs Watch App
- github actions
- PencilKit
- 플러터 얼럿
- ribs
- Flutter getter setter
- flutter build mode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |