Skip to main content

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

  1. Add "django_react_views" to your INSTALLED_APPS setting like this::

    INSTALLED_APPS = [
        ...
        'django_react_views',
    ]
    
  2. Create a directory in your app called react

  3. 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

  4. 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
    
  5. Add these scripts to package.json

    "scripts": {
        "build": "webpack",
        "watch": "webpack --watch"
    },
    
  6. Execute npm run watch to start building your react files

  7. Add the react template tag to the template where you want to show your react component

    {% load react %}
    ...
    {% react %}
    ...
    
  8. 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
    
  9. Add a url for your view

    urlpatterns = [
        ...
        path('my-react-view/<int:pk>/', MyReactView.as_view(), name='my-react-view')
    ]
    
  10. 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}} } }
    
  11. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-react-views-1.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

django_react_views-1.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file django-react-views-1.1.tar.gz.

File metadata

File hashes

Hashes for django-react-views-1.1.tar.gz
Algorithm Hash digest
SHA256 01049d1c445609db3c14ba31186b07be10c33eb258aada4e86059b4bc1c901bb
MD5 695fb5f2cc587762ae8a441afe0aa4b5
BLAKE2b-256 499e7515fc88a355ca0e2367aed00963b1b5d6043bdd91f8c82b97c100fdb79a

See more details on using hashes here.

File details

Details for the file django_react_views-1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_react_views-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5affb38e325e00c1956181198481a610546bb8dcfab0af5eb8e09eff056d1609
MD5 b98ddf54084508ec9ca7d78366743d89
BLAKE2b-256 e9c63f9359ccdb91b1ebd7ed3b0cce40a22540eaead36e9094f366767acd6225

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page