はじめに
DjangoとGrapheneを利用してGraphQLの環境を構築する。DBはsqlliteを利用する。 docs.graphene-python.org
公式ドキュメントのインストール手順を踏んでやっているが、エラーが出たので、エラーの解消はまた次回とする
ライブラリのインストール
pip install graphene-django pip install graphene
プロジェクトフォルダのsettings.pyの設置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', #GraphiQLに必要
'graphene_django', # こちらを追加する
'<アプリケーション>'
]
GRAPHENE = {
'SCHEMA': 'hogeproject.schema.schema'
}
エンドポイントの追加
- Djangoプロジェクトのurls.pyにgraphql URLを追加する必要があります。
from django.contrib import admin
from django.urls import path, include
from django.views.decorators.csrf import csrf_exempt
from graphene_django.views import GraphQLView
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('boardapp.urls')),
path("graphql/", csrf_exempt(GraphQLView.as_view(graphiql=True))),
]
プロジェクトに schema.pyを作成
import graphene
import cookbook.ingredients.schema
class Query(cookbook.ingredients.schema.Query, graphene.ObjectType):
# This class will inherit from multiple Queries
# as we begin to add more apps to our project
pass
schema = graphene.Schema(query=Query)
上記の状態で動作させる
Could not import 'boardproject.schema.schema' for Graphene setting 'SCHEMA'. ModuleNotFoundError: No module named 'boardapp.schema'.のエラーメッセージが表示される
解決方法
- 下記に記載されている内容で試してみる stackoverflow.com