Как в django rest записать данные в базу данных postgresql?

Пользователь

от rodger.botsford , в категории: SQL , 6 месяцев назад

Как в django rest записать данные в базу данных postgresql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от narciso , 6 месяцев назад

@rodger.botsford 

Для записи данных в базу данных PostgreSQL с использованием Django Rest Framework в Django следуйте этим шагам:

  1. Обновите настройки проекта в файле settings.py, чтобы подключить PostgreSQL базу данных.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'your_database_name',
        'USER': 'your_database_user',
        'PASSWORD': 'your_database_password',
        'HOST': 'localhost',
        'PORT': '',
    }
}


  1. Создайте модель данных для таблицы, в которой нужно сохранить данные. Например, для создания модели "Book":
1
2
3
4
5
6
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    publish_date = models.DateField()


  1. Создайте сериализатор для модели данных, чтобы определить, какие поля данных должны быть включены в ответ API. Например, для сериализации модели "Book":
1
2
3
4
5
6
7
from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = '__all__'


  1. Создайте представление, которое будет обрабатывать запросы и записывать данные в базу данных. Например, для представления "BookView":
1
2
3
4
5
6
7
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer

class BookView(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer


  1. Добавьте URL-маршруты для представления в файле urls.py, чтобы связать представление с определенными URL-адресами. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from django.urls import include, path
from rest_framework import routers
from .views import BookView

router = routers.DefaultRouter()
router.register(r'books', BookView)

urlpatterns = [
    path('api/', include(router.urls)),
]


Теперь вы можете отправлять POST-запросы на /api/books, чтобы записать данные в базу данных PostgreSQL с использованием Django Rest Framework.