카테고리 없음

안드로이드 스튜디오와 장고 연결하기

sorecord 2025. 3. 8. 18:32

기록+공부용이라 존댓말이 아닌 대충 툭툭 던지는 어투를 사용하는 점 양해부탁드려요!!

 

새로 만들어보고 싶은 프로젝트가 생각나서 앱을 만들어야 한다.

https://wikidocs.net/70718

 

2-03 장고 관리자

필자가 장고를 처음 접했을 때 가장 인상 깊었던 것은 장고 관리자(Admin)였다. `admin.py` 파일에 몇 줄의 코드만 추가하면 마치 마법처럼 다양한 기능이 자동으로 제공…

wikidocs.net

위의 사이트를 참고하면 장고를 설치하고 기본세팅을 맞추기 편하다. 

 

안드로이드 스튜디오는 xml을 사용하지 않고 jetpack compose로 바뀌었다. ui개발을 간소화하기 위해 바뀌었다던데 개인적으로 더 적응하기 힘들었다. 언어도 자바가 아니라 코틀린이다. 


 

 

<참고로 저도 아주 기본적인 데이터 주고받기를 위한 코드입니다. 해당 코드를 이용해서 차차 복잡한 데이터를 주고받으려고 계획하는 중입니다! + 고수분들은 보셔도 얻어가실 것이 없습니다.

+

저도 그저 블로그AI의 도움을 받은 것을 글로 정리해두는 것뿐입니다! 혹시라도 수정할 부분이나 개선할 부분이 많을 수도 있는데 피드백 부탁드려요!>

 

간단한 목차 

  1. Django REST Framework
    • 설치 및 설정 방법
  2. Django REST API 구현
    • 모델 및 시리얼라이저 정의
    • API 뷰 생성
    • URL 라우팅 설정
  3. 안드로이드에서 Retrofit 사용하기
    • Retrofit 설치 및 설정
  4. 데이터 주고받기
    • 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

https://devkor.tistory.com/entry/03-Django-Rest-Framework-Serializer-View-%EA%B0%9C%EB%85%90-%EC%9D%B5%ED%9E%88%EA%B8%B0

 

02. Django Rest Framework, Serializer, View 개념 익히기

Hello World 코드 설명 # (수정) 추후 설명하는 그림을 첨부할 예정입니다. GET 127.0.0.1:8000/api/hello/ 지난 시간에 해당 주소로 요청을 보내면 hello world를 print하는 api를 만들었습니다. 각 단계를 다시 따

devkor.tistory.com

 

+ai의 도움들