Skip to main content

A zero-fuss way to create non single page apps with react.

Project description

React Pages

A zero-fuss way to create non single page apps with react.
  • Zero Configuration required.
  • Go from development to production with ease.

Features

  • custom react scripts
  • Imports from other pages (create-react-app doesn't allow that)
  • Natively use react in django.
  • Ready-to-serve production builds with the proper paths. (using --static-url option)

Terminology

Project

The project contains the node.js modules necessary to use react and the pages you create.

└── project
    ├── package.json
    ├── package-lock.json
    ├── .env
    ├── .gitignore
    ├── public
    │   ├── favicon.ico
    │   ├── index.html
    │   └── manifest.json
    <pages>

Page:

A page is a directory containing at least an index.js file, (and other css/js files specific to your application.)

└── page
    ├── App.css
    ├── App.js
    ├── App.test.js
    ├── index.css
    ├── index.js
    ├── logo.svg
    └── registerServiceWorker.js

QuickStart

You need npm on your machine!

PyPI version (tag)

pip install react-pages

Commands :

$ react-pages project my_project # create a project

$ cd poll_react_pages

$ react-pages page my_page # create a page

$ react-pages develop # development

$ react-pages deploy # production

$ react-pages runserver # django runserver alternative

Django Integration

settings.py

INSTALLED_APPS = [
    ...
    'react_pages',
    ...
]

# React Pages
REACT_PAGES_PROJECT_DIR = os.path.join(BASE_DIR, 'my_project')  # specify the react-pages project

STATICFILES_DIRS = [
    ...
    os.path.join(REACT_PAGES_PROJECT_DIR, 'build')  # mark the build dir as static file dir
    ...
]

template.html

{% load react_pages %}
...
{% render_react_page 'vote' %}
...

Remeber to use react-pages runserver instead of manage.py runserver!

That's it! React Pages will pick-up the "vote" page from "poll_react_pages" project and do the necessary work to transpire react JSX.

Django Context

You can pass django template context varialbes like so -

views.py context['foo'] = [1, 2, 3]

template.html {% render_react_page 'vote' foo=foo %}

Then access these anywhere in react code console.log(foo);

Note: These must be JSON serialize-able

For production, just put DEBUG=False in settings.py and relax.

Existing projects

React Pages will automatically patch itsef into any existing project, that was created using create-react-app.

Just run react-pages project . from your project directory!

Projects not using create-react-app will probably work, but no guarantees can be made.

Issues

  • It might not uninstall using pip. As a temporary fix, Run react-pages uninstall once, and then pip uninstall react-pages will work.

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

react-pages-0.1.3.tar.gz (134.5 kB view details)

Uploaded Source

Built Distribution

react_pages-0.1.3-py2.py3-none-any.whl (149.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file react-pages-0.1.3.tar.gz.

File metadata

  • Download URL: react-pages-0.1.3.tar.gz
  • Upload date:
  • Size: 134.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for react-pages-0.1.3.tar.gz
Algorithm Hash digest
SHA256 da5306550eac809e725de2e9be4e061c266fd5ff990f547aa6dd6aa49e71ab3b
MD5 a027a6e0140c2cf69a89af8648757358
BLAKE2b-256 7751e2e45c193f29498835b2f86108e180839c14de594f7949b8cf5c77a5fe66

See more details on using hashes here.

File details

Details for the file react_pages-0.1.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for react_pages-0.1.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 62738ac83a552fb28de703f271a56fcebd65680d9dbc8e3a66a0b9e6403fa6a5
MD5 c7c29b2b6d1b4937e4126a0441efa255
BLAKE2b-256 ebed2cf05994570eac18bb8e5a9f05abc0e6a39da02da47fdcb8d3e614a543e3

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