Django & DRF9/16/2025Jakhangir Khakimjanov243 views

Implementing GraphQL in Django and the Graphene library.

Implementing GraphQL in Django and the Graphene library.

Djangoda GraphQL ni qo‘llanilishi va Graphene kutubxonasi

Jahongir Hakimjonov • June 25, 2024

GraphQL — bu API (Application Programming Interface) uchun so‘rovlar tili bo‘lib, foydalanuvchilarga kerakli ma’lumotlarni aniq so‘rab olish imkonini beradi. Django’da GraphQL qo‘llanilishi Graphene-Django kutubxonasidan foydalanish orqali amalga oshiriladi. Keling, GraphQL va Django’da GraphQL qanday qo‘llanilishini bosqichma-bosqich ko‘rib chiqaylik.


GraphQL haqida qisqacha

GraphQL Facebook tomonidan ishlab chiqilgan va ochiq manba (open-source) bo‘lgan. REST API-lardan farqli o‘laroq, foydalanuvchilarga kerakli ma’lumotlarni aniq so‘rab olish imkonini beradi. REST’da bir nechta so‘rov orqali olinadigan ma’lumotlarni GraphQL yordamida bir so‘rov orqali olish mumkin.


Django’da GraphQL qo‘llanilishi

Django’da GraphQL ishlatish uchun Graphene-Django kutubxonasidan foydalaniladi. Quyida Graphene-Django yordamida oddiy GraphQL API yaratish bosqichlari:

  1. Django loyihasini yaratish va unga Graphene-Django-ni o‘rnatish

    bash
    1pip install graphene-django

GraphQL image 1

  1. Django ilovasini yaratish

    bash
    1python manage.py startapp myapp

GraphQL image 2

  1. Ilovani sozlashsettings.py fayliga kerakli konfiguratsiyalarni qo‘shish

    python
    1INSTALLED_APPS = [
    2    ...
    3    "graphene_django",
    4    "myapp",
    5]
    6
    7GRAPHENE = {
    8    "SCHEMA": "myapp.schema.schema"
    9}

GraphQL image 3

  1. Model yaratish (myapp/models.py)

    python
    1from django.db import models
    2
    3class Author(models.Model):
    4    name = models.CharField(max_length=100)
    5    age = models.IntegerField()

    GraphQL image 4

  2. Schema va Query yaratish (myapp/schema.py)

    python
    1import graphene
    2from graphene_django import DjangoObjectType
    3from .models import Author
    4
    5class AuthorType(DjangoObjectType):
    6    class Meta:
    7        model = Author
    8        fields = ("id", "name", "age")
    9
    10class Query(graphene.ObjectType):
    11    all_authors = graphene.List(AuthorType)
    12
    13    def resolve_all_authors(root, info):
    14        return Author.objects.all()
    15
    16schema = graphene.Schema(query=Query)

GraphQL image 5

  1. URL-larni sozlash (myproject/urls.py)

    python
    1from django.contrib import admin
    2from django.urls import path
    3from graphene_django.views import GraphQLView
    4
    5urlpatterns = [
    6    path("admin/", admin.site.urls),
    7    path("graphql/", GraphQLView.as_view(graphiql=True)),
    8]

GraphQL image 6

  1. Ma’lumotlar bazasini migratsiya qilish

    bash
    1python manage.py makemigrations
    2python manage.py migrate

GraphQL image 7

  1. GraphQL endpoint-ni test qilish — serverni ishga tushirib, brauzerda:

    👉 http://127.0.0.1:8000/graphql/

    Bu yerda GraphiQL interfeysi orqali so‘rov yuborishingiz mumkin:

    graphql
    1{
    2  allAuthors {
    3    id
    4    name
    5    age
    6  }
    7}

GraphQL image 8


Xulosa

  • GraphQL — foydalanuvchiga aniq ma’lumotlarni olish imkonini beradi.
  • Graphene-Django — Django’da GraphQL qo‘llash uchun qulay kutubxona.
  • Bu yondashuv orqali API’lar yanada moslashuvchan va samarali bo‘ladi.

Author: Jakhangir Khakimjanov
Implementing GraphQL in Django and the Graphene library. | Jahongir Hakimjonov