안드로이드 스튜디오와 장고 연결하기
기록+공부용이라 존댓말이 아닌 대충 툭툭 던지는 어투를 사용하는 점 양해부탁드려요!!
새로 만들어보고 싶은 프로젝트가 생각나서 앱을 만들어야 한다.
2-03 장고 관리자
필자가 장고를 처음 접했을 때 가장 인상 깊었던 것은 장고 관리자(Admin)였다. `admin.py` 파일에 몇 줄의 코드만 추가하면 마치 마법처럼 다양한 기능이 자동으로 제공…
wikidocs.net
위의 사이트를 참고하면 장고를 설치하고 기본세팅을 맞추기 편하다.
안드로이드 스튜디오는 xml을 사용하지 않고 jetpack compose로 바뀌었다. ui개발을 간소화하기 위해 바뀌었다던데 개인적으로 더 적응하기 힘들었다. 언어도 자바가 아니라 코틀린이다.
<참고로 저도 아주 기본적인 데이터 주고받기를 위한 코드입니다. 해당 코드를 이용해서 차차 복잡한 데이터를 주고받으려고 계획하는 중입니다! + 고수분들은 보셔도 얻어가실 것이 없습니다.
+
저도 그저 블로그와 AI의 도움을 받은 것을 글로 정리해두는 것뿐입니다! 혹시라도 수정할 부분이나 개선할 부분이 많을 수도 있는데 피드백 부탁드려요!>
간단한 목차
- Django REST Framework
- 설치 및 설정 방법
- Django REST API 구현
- 모델 및 시리얼라이저 정의
- API 뷰 생성
- URL 라우팅 설정
- 안드로이드에서 Retrofit 사용하기
- Retrofit 설치 및 설정
- 데이터 주고받기
- Django DB에서 데이터 받아오기
- 안드로이드에서 입력한 데이터 Django DB에 저장
일단 내 앱의 구조는 장고를 백엔드로 사용을 하고 안스로는 ui로 구현을 할 생각이다. (잘 될지는 모르겠는데..)
어떻게 연결을 하는 건지 감도 안 오다가 좀 찾아보니까 장고에서 Rest_framework를 사용하면 안스랑 여차저차 뚝딱하면 연결된다더라. ㅇㅇ
장고부터 차근차근 살펴보자.
목차 1
위의 장고 사이트를 보고 기본설정을 완료함.
python manage.py startproject myproject
python manage.py startapp data
위 코드를 실행한다. 프로젝트 이름과 앱이름은 각자 정하면 된다.
app_name/setting.py를 이동해서
INSTALLED_APPS = [
'rest_framework',
'data',
]
이런 식으로 추가
목차 2
모델을 먼저 만들어줄 것이다.
data\models.py
from django.db import models
# Create your models here.
class Test(models.Model):
test=models.CharField(max_length=10)
def __str__(self):
return self.test
data\serializers.py를 만들어준다.
from rest_framework import serializers
from .models import Test
class TestSerializer(serializers.ModelSerializer):
id = serializers.IntegerField(read_only=True)
class Meta:
model = Test
fields = ['test','id']
간단하게 파이썬 데이터를 json 타입의 데이터로 변환해준다고 생각하면 된다.
기본적으로 웹에서 데이터를 주고 받을때 기본적으로 정해진 포맷이 있다. 대표적으로 xml과 json인데 REST Api에서는 json으로 주고 받는다.
Django model에서 뽑은 queryset, 즉 모델 인스턴스 값을 json 타입으로 바꿔준다.
url 파일들
#venv 폴더\config\url.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('data.urls')),#https://wikidocs.net/70649 이거 보고 url파일 이동
]
################
#venv폴더 \data\url.py
from django.urls import path,include
from django.contrib import admin
from . import views
from rest_framework import routers
router=routers.DefaultRouter()
router.register(r'tests',views.TestViewSet)
urlpatterns = [
path('', include(router.urls)),
path('admin/',admin.site.urls),
]
- include('data.urls'): data 애플리케이션의 URLconf를 포함한다. 즉, data/urls.py 파일에 정의된 URL 패턴을 가져와서 연결
- routers: RESTful API를 쉽게 설정하기 위한 라우터 기능을 제공
- router = routers.DefaultRouter(): 기본 라우터 인스턴스를 생성 이 라우터는 URL 패턴을 자동으로 생성
- router.register(r'tests', views.TestViewSet): tests라는 경로에 TestViewSet을 등록. 이로 인해 /tests/ 경로에서 CRUD 작업을 수행할 수 있는 API가 생성. views.TestViewSet은 데이터베이스 모델과 연결된 뷰셋이다.
아래는 참고한 사이트입니다. 문제시 비공개처리하도록 하겠습니다.
https://m.blog.naver.com/kkang9901/221938232050?recommendTrackingCode=2
Android Studio + REST Api + Django를 이용한 통신
디장고 서버와 REST API를 이용해 MySQL, 또는 SQLite3의 DBMS에 접근하여 Data를 가져...
blog.naver.com
https://simplepro.tistory.com/1
retrofit 을 이용한 Django, android 서버 통신 (1)
이번 시리즈에서는 retrofit 을 이용한 Django, android 의 서버 통신에 대해 알아보겠다. (파이썬, 안드로이드 스튜디오가 설치된 상태를 기준으로 진행함.) Django 를 이용하기 위해 여러 가지 IDE 가 있
simplepro.tistory.com
02. Django Rest Framework, Serializer, View 개념 익히기
Hello World 코드 설명 # (수정) 추후 설명하는 그림을 첨부할 예정입니다. GET 127.0.0.1:8000/api/hello/ 지난 시간에 해당 주소로 요청을 보내면 hello world를 print하는 api를 만들었습니다. 각 단계를 다시 따
devkor.tistory.com
+ai의 도움들