Projects
Aurora-(3)django, pynecone 연동예제코드
빛하루
2023. 11. 2. 22:32
※django 내부 코드
# Django API 설정 (Django 앱 내부)
# myapp/models.py
from django.db import models
class MyModel(models.Model):
field1 = models.CharField(max_length=100)
field2 = models.TextField()
# myapp/serializers.py
from rest_framework import serializers
from .models import MyModel
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = '__all__'
# myapp/views.py
from rest_framework import generics
from .models import MyModel
from .serializers import MyModelSerializer
class MyModelListCreate(generics.ListCreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
# myapp/urls.py
from django.urls import path
from .views import MyModelListCreate
urlpatterns = [
path('api/mymodel/', MyModelListCreate.as_view(), name='mymodel-list-create'),
]
# 프로젝트의 urls.py (myproject/urls.py)
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('myapp.urls')),
]
※pynecone 내부 코드
import requests
from pynecone import pc, h
api_endpoint = 'http://localhost:8000/api/mymodel/' # Django API 엔드포인트 URL
class MyApp(pc.Component):
def __init__(self):
super().__init__()
self.state.data = []
def on_mount(self):
# Django API에서 데이터를 가져오는 GET 요청
response = requests.get(api_endpoint)
if response.status_code == 200:
self.state.data = response.json()
def render(self):
return (
h.div(
h.h1('Data from Django API'),
h.ul([h.li(item['field1']) for item in self.state.data])
)
)
app = pc.app(MyApp)
if __name__ == '__main__':
app.start()