mirror of
				https://github.com/graphql-python/graphene.git
				synced 2025-10-30 15:37:52 +03:00 
			
		
		
		
	Merge pull request #128 from amsb/master
Updated django quickstart tutorial
This commit is contained in:
		
						commit
						d763bf9b75
					
				|  | @ -130,7 +130,11 @@ class Query(ObjectType): | |||
| The filtering functionality is provided by | ||||
| [django-filter](https://django-filter.readthedocs.org). See the | ||||
| [usage documentation](https://django-filter.readthedocs.org/en/latest/usage.html#the-filter) | ||||
| for details on the format for `filter_fields`. | ||||
| for details on the format for `filter_fields`. While optional, this tutorial makes use of this functionality so you will need to install `django-filter` for this tutorial to work: | ||||
| 
 | ||||
| ````bash | ||||
| pip install django-filter | ||||
| ``` | ||||
| 
 | ||||
| Note that the above `Query` class is marked as 'abstract'. This is because we | ||||
| will now create a project-level query which will combine all our app-level | ||||
|  | @ -156,13 +160,15 @@ schema.query = Query | |||
| You can think of this as being something like your top-level `urls.py` | ||||
| file (although it currently lacks any namespacing). | ||||
| 
 | ||||
| ## Adding GraphiQL | ||||
| ## Update `INSTALLED_APPS` | ||||
| 
 | ||||
| GraphiQL is a web-based integrated development environment to assist in the | ||||
| writing and executing of GraphQL queries. It will provide us with a simple | ||||
| and easy way of testing our cookbook project. | ||||
| Next, install your app and GraphiQL in your Django project. GraphiQL is | ||||
| a web-based integrated development environment to assist in the writing and | ||||
| executing of GraphQL queries. It will provide us with a simple and easy way | ||||
| of testing our cookbook project. | ||||
| 
 | ||||
| Add `django_graphiql` to `INSTALLED_APPS` in `cookbook/settings.py`: | ||||
| Add `ingredients`, `graphene.contrib.django` and `django_graphiql` to | ||||
| `INSTALLED_APPS` in `cookbook/settings.py`: | ||||
| 
 | ||||
| ```python | ||||
| INSTALLED_APPS = [ | ||||
|  | @ -171,9 +177,13 @@ INSTALLED_APPS = [ | |||
| 
 | ||||
|     # This will also make the `graphql_schema` management command available | ||||
|     'graphene.contrib.django', | ||||
| 
 | ||||
|     # Install the ingredients app | ||||
|     'ingredients', | ||||
| ] | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ## Creating GraphQL and GraphiQL views | ||||
| 
 | ||||
| Unlike a RESTful API, there is only a single URL from which GraphQL is accessed. | ||||
|  | @ -198,10 +208,19 @@ urlpatterns = [ | |||
| ] | ||||
| ``` | ||||
| 
 | ||||
| ## Apply model changes to database | ||||
| 
 | ||||
| Tell Django that we've added models and update the database schema to reflect these additions. | ||||
| 
 | ||||
| ```bash | ||||
| python manage.py makemigrations | ||||
| python manage.py migrate | ||||
| ``` | ||||
| 
 | ||||
| ## Load some test data | ||||
| 
 | ||||
| Now is a good time to load up some test data. The easiest option will be to | ||||
| [download the ingredients.json](https://raw.githubusercontent.com/graphql-python/graphene/feature/django/examples/cookbook/cookbook/ingredients/fixtures/ingredients.json) | ||||
| [download the ingredients.json](https://raw.githubusercontent.com/graphql-python/graphene/master/examples/cookbook_django/cookbook/ingredients/fixtures/ingredients.json) | ||||
| fixture and place it in | ||||
| `cookbook/ingredients/fixtures/ingredients.json`. You can then run the following: | ||||
| 
 | ||||
|  | @ -211,7 +230,7 @@ $ python ./manage.py loaddata ingredients | |||
| Installed 6 object(s) from 1 fixture(s) | ||||
| ``` | ||||
| 
 | ||||
| Alternatively you can use the Django admin interface to create some data youself. | ||||
| Alternatively you can use the Django admin interface to create some data yourself. | ||||
| You'll need to run the development server (see below), and create a login | ||||
| for yourself too (`./manage.py createsuperuser`). | ||||
| 
 | ||||
|  | @ -282,7 +301,7 @@ Or you can get only 'meat' ingredients containing the letter 'e': | |||
| ```graphql | ||||
| query { | ||||
|   # You can also use `category: "CATEGORY GLOBAL ID"` | ||||
|   allIngredients(name_Icontains: "e", categoryName: "Meat") { | ||||
|   allIngredients(name_Icontains: "e", category_Name: "Meat") { | ||||
|     edges { | ||||
|       node { | ||||
|         name | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user