A Django app providing generic Class Based views and template tags that make it easy to use react alongside django views and templates.
Project description
Django-React-Views
django-react-riews is a Django app providing generic Class Based views and template tags that make it easy to use react alongside django views and templates.
It can be used along with channels-redux-python and channels-redux-js to provide a framework to use websockets to keep a frontend redux state in sync with the database state.
Quick start
-
Add "django_react_views" to your INSTALLED_APPS setting like this::
INSTALLED_APPS = [ ... 'django_react_views', ]
-
Create a directory in your app called
react
-
Copy
webpack.config.js
or use you're own webpack config as long as it builds your react components into one of your STATICFILES_DIRS -
Use npm to install at least the packages required for react & building with webpack
npm install --save-prod react react-dom npm install --save-dev babel-core babel-loader babel-preset-env babel-preset-es2015 babel-preset-react glob webpack webpack-cli
-
Add these scripts to
package.json
"scripts": { "build": "webpack", "watch": "webpack --watch" },
-
Execute
npm run watch
to start building your react files -
Add the react template tag to the template where you want to show your react component
{% load react %} ... {% react %} ...
-
Create a view for your template
from django_react_views.views import ReactDetailView class MyReactView(ReactDetailView): react_component = 'MyReactComponent.js' # By default this will resolve to dist/app_name/{react_component}. If {% static %} can not find the file you may need to edit some other properties of this class model_serializer = MyModelSerializer model = MyModel
-
Add a url for your view
urlpatterns = [ ... path('my-react-view/<int:pk>/', MyReactView.as_view(), name='my-react-view') ]
-
This framework provides window.props, which contains a javascript object that can be used to hydrate your react state. This has the shape of::
window.props = {"objects": {"appname.modelname": {"https://example.com/appname/modelname/1/": {object as serialized by your model serializer}} } }
-
Start the development server and visit http://127.0.0.1:8000/ and visit your page to see you're react component in action
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-react-views-1.1.tar.gz
.
File metadata
- Download URL: django-react-views-1.1.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01049d1c445609db3c14ba31186b07be10c33eb258aada4e86059b4bc1c901bb |
|
MD5 | 695fb5f2cc587762ae8a441afe0aa4b5 |
|
BLAKE2b-256 | 499e7515fc88a355ca0e2367aed00963b1b5d6043bdd91f8c82b97c100fdb79a |
File details
Details for the file django_react_views-1.1-py3-none-any.whl
.
File metadata
- Download URL: django_react_views-1.1-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5affb38e325e00c1956181198481a610546bb8dcfab0af5eb8e09eff056d1609 |
|
MD5 | b98ddf54084508ec9ca7d78366743d89 |
|
BLAKE2b-256 | e9c63f9359ccdb91b1ebd7ed3b0cce40a22540eaead36e9094f366767acd6225 |