{ "info": { "author": "Luka Maljic", "author_email": "luka@maljic.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[![PyPI version](https://badge.fury.io/py/django-parcel-ssr.svg)](https://badge.fury.io/py/django-parcel-ssr)\n\n# Django Parcel SSR\n\nZero configuration performant JavaScript server side rendering for [Django web framework](https://www.djangoproject.com/), powered by [Parcel bundler](https://parceljs.org/). \n\n## Install\n\n```bash\npip install django-parcel-ssr\nnpm install parcel-bundler esm\n```\n\n[React](https://reactjs.org/) is supported out of the box, but any JavaScript view library with server side rendering support can be used instead (see `scripts` option and [examples](examples)). To use React install additional dependencies:\n\n```bash\nnpm install react react-dom react-helmet styled-jsx\n```\n\nDefault React setup comes with optional [`styled-jsx`](https://github.com/zeit/styled-jsx) CSS-in-JS support for writing CSS which applies only to a single component. To use it, add the `.babelrc` file with the plugin to your project root:\n\n```json\n{\n \"plugins\": [\n \"styled-jsx/babel\"\n ]\n}\n```\n\n**Note for TypeScript users**: Parcel 1.x doesn't support Babel plugins for TypeScript out the box. Check out the [TypeScript example](examples/typescript.md) for a workaround.\n\nUpdate `INSTALLED_APPS`, `TEMPLATES`, and `STATICFILES_DIRS` entries in `settings.py`:\n\n```python\nINSTALLED_APPS = [\n 'ssr',\n # ...\n]\n\nTEMPLATES = [\n {\n 'BACKEND': 'ssr.backends.javascript.Components',\n 'DIRS': [],\n 'APP_DIRS': True,\n 'OPTIONS': {\n # 'extensions': ['js', 'jsx', 'ts', 'tsx'],\n # 'output_dirname': 'dist/',\n # 'json_encoder': 'django.core.serializers.json.DjangoJSONEncoder',\n # 'cache': True,\n # 'env': {\n # 'NODE_ENV': 'development' if DEBUG else 'production',\n # 'NODE_OPTIONS': '-r esm',\n # 'WORKER_TTL': 1000,\n # },\n # 'scripts': {\n # 'server': os.path.join(BASE_DIR, '.ssr', 'scripts', 'react', 'server.js'),\n # 'client': os.path.join(BASE_DIR, '.ssr', 'scripts', 'react', 'client.js'),\n # }\n }\n },\n # ...\n]\n\nSTATICFILES_DIRS = (\n os.path.join(BASE_DIR, '.ssr', 'static'),\n # ...\n)\n```\n\nInitialize server side rendering in `wsgi.py`:\n\n```python\n# ...\nimport ssr\nssr.setup()\n```\n\nWe recommend adding `.ssr/` directory to `.gitignore`, to avoid committing your builds.\n\n## Usage\n\nJavaScript files in `bundles` directories of installed Django apps serve as Parcel entry points and they have to provide a root component as default export. **Avoid putting non root components in `bundles` directories** to prevent unnecessary bundling:\n\n- `bundles/`\n - `template.js`\n- `components/`\n - `layout.js`\n - `navbar.js`\n - `...`\n\nCreate an example `bundles/template.js` file in an installed app directory:\n\n```javascript\nimport React from 'react'\nimport { Helmet } from 'react-helmet'\n\nexport default props => {\n const [count, setCount] = React.useState(props.count)\n return (\n
\n \n {props.title}\n \n\n

Count: {count}

\n \n \n\n \n
\n )\n}\n```\n\nBundles are available to the templating engine for server side rendering, but **context has to be JSON serializable** (see restrictions below).\n\nCreate an example Django view in `urls.py`:\n\n```python\nfrom django.urls import path\nfrom django.shortcuts import render\n\ndef react_view(request):\n return render(request, 'template.js', context={\n 'title': 'Django SSR'\n 'count': 0,\n 'color': 'red'\n })\n\nurlpatterns = [\n # ...\n path('', react_view)\n]\n```\n\nRun `./manage.py runserver` and navigate to `http://localhost:8000`.\n\nConsult [Parcel documentation](https://parceljs.org/getting_started.html) to learn about supported assets, recipes, and more.\n\n### Restrictions\n\nTemplate context has to be a JSON serializable value because the actual rendering is handled by JavaScript. Django objects have to be [serialized](https://docs.djangoproject.com/en/2.1/topics/serialization/#serialization-formats-json); querysets can be rendered as dictionaries instead of model instances using [`QuerySet.values()`](https://docs.djangoproject.com/en/2.1/ref/models/querysets/#values). For advanced use cases such as handling model relations, serialize context data manually, e.g. using Django REST Framework's [model serializer](https://www.django-rest-framework.org/api-guide/serializers/#modelserializer).\n\n## Deployment\n\nIf `NODE_ENV` option is set to `production` (by default this happens when `DEBUG = False`), starting the Django app will not automatically bundle entry points. You'll need to invoke the management command manually, and collect staticfiles afterwards:\n\n```bash\n./manage.py bundle\n./manage.py collectstatic -l\n```\n\n## Options\n\n### extensions\n\nDefault: `['js', 'jsx', 'ts', 'tsx']`\n\nList of valid file extensions for bundles. \n\n### output_dirname\n\nDefault: `'dist/'`\n\nName of the Parcel bundles output directory. **Trailing slash is required.**\n\n### json_encoder\n\nDefault: `'django.core.serializers.json.DjangoJSONEncoder'`\n\nJSON encoder class used for serializing view context into props. \n\n### cache\n\nDefault: `True`\n\nEnables or disables Parcel bundler caching.\n\n### env.NODE_ENV\n\nDefault: `'development' if DEBUG else 'production'`\n\nDevelopment mode activates bundle watchers with HMR (hot module replacement). Production mode performs a single build and outputs optimized bundles.\n\n### env.NODE_OPTIONS\n\nDefault: `'-r esm'`\n\nCLI options for Node workers. \n\nServer side renderer uses [`esm`](https://github.com/standard-things/esm) loader to handle dynamic imports.\n\n### env.WORKER_TTL\n\nDefault: `1000`\n\nNumber of milliseconds Node workers will wait for Django to restart before exiting. \n\n### scripts.server\n\nDefault: `'{BASE_DIR}/.ssr/scripts/react/server.js'`\n\nAbsolute path to custom `createRenderer` function, used to create `render` function which has to return HTML document string. This file is transpiled and executed on the server.\n\n```javascript\nimport { createElement, renderToString } from 'some-view-library'\n\nexport default Component => ({ script, stylesheet }, props) => {\n const component = createElement(Component, props)\n const html = renderToString(component)\n const serializedProps = encodeURIComponent(JSON.stringify(props))\n return `\n \n \n \n ${stylesheet && ``}\n \n \n
${\n process.env.NODE_ENV === 'production' ? html : ''\n }
\n \n \n `\n}\n```\n\n### scripts.client\n\nDefault: `'{BASE_DIR}/.ssr/scripts/react/client.js'`\n\nAbsolute path to custom `hydrate` function, used to update the root DOM node when the page loads. This file is transpiled and executed in the browser.\n\n```javascript\nimport { createElement, hydrate, render } from 'some-view-library'\n\nexport default Component => {\n const root = document.getElementById('root')\n const props = JSON.parse(decodeURIComponent(root.dataset.props))\n const component = createElement(Component, props)\n const mount = process.env.NODE_ENV === 'production' ? hydrate : render\n mount(component, root)\n}\n```\n\n## Examples\n\nFor advanced use cases such as using client side routing, state management libraries, or different JavaScript view libraries altogether, check out the [examples](examples):\n\n- [TypeScript](examples/typescript.md)\n- [React with React Router](examples/react-with-react-router.md)\n- [React with Redux](examples/react-with-redux.md)\n- [Cycle.js](examples/cyclejs.md)\n- [Cycle.js React](examples/cyclejs-react.md)\n- [Vue.js](examples/vuejs.md)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/malj/django-parcel-ssr", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-parcel-ssr", "package_url": "https://pypi.org/project/django-parcel-ssr/", "platform": "", "project_url": "https://pypi.org/project/django-parcel-ssr/", "project_urls": { "Homepage": "https://github.com/malj/django-parcel-ssr" }, "release_url": "https://pypi.org/project/django-parcel-ssr/0.7.0/", "requires_dist": [ "django", "requests-unixsocket" ], "requires_python": "", "summary": "Django server side rendering, powered by Parcel bundler", "version": "0.7.0" }, "last_serial": 5375345, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "51870e98a31e7b022a7b4acb69cb1212", "sha256": "efc06d3f488a7d2ab94b9f0f42142e197a246ee423ccbf2d64d3264e2a74b5a3" }, "downloads": -1, "filename": "django_parcel_ssr-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "51870e98a31e7b022a7b4acb69cb1212", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13168, "upload_time": "2019-03-18T22:40:43", "url": "https://files.pythonhosted.org/packages/56/a2/71f3275d5240ae49ddced409e1d24c00dd1ed42a7d2e7c83246d3650220c/django_parcel_ssr-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc084826a3753be315dc085a3f936bea", "sha256": "a8e8315a5b9816bbdb03069e679f0b4087e6606e0299526b6bdc1083d288fb0b" }, "downloads": -1, "filename": "django-parcel-ssr-0.0.1.tar.gz", "has_sig": false, "md5_digest": "fc084826a3753be315dc085a3f936bea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9900, "upload_time": "2019-03-18T22:40:45", "url": "https://files.pythonhosted.org/packages/71/ec/8c10624e5805a4f4c54a5b2762c80598f0526a2fac128203bfd88228e5f3/django-parcel-ssr-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "864abba3c925ad5ece2737aecda973f3", "sha256": "d3ce67fa79f6eceb6e5ba530a8806377eb9286c7eae5bb2b68b713d6d4f65fa6" }, "downloads": -1, "filename": "django_parcel_ssr-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "864abba3c925ad5ece2737aecda973f3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13197, "upload_time": "2019-03-19T08:33:30", "url": "https://files.pythonhosted.org/packages/93/8d/3ba288e9fb98fc2f23088ef82f2e8ecfcf87c375af2f01692b392d376dc4/django_parcel_ssr-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "074f7085d96e312157c33267be7ed32c", "sha256": "f92779300f804c104342f76d2d8310eaddf90704d25fa4d51158a6583116d201" }, "downloads": -1, "filename": "django-parcel-ssr-0.0.2.tar.gz", "has_sig": false, "md5_digest": "074f7085d96e312157c33267be7ed32c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9909, "upload_time": "2019-03-19T08:33:31", "url": "https://files.pythonhosted.org/packages/26/03/d9c990c607367f91be2c9fb9ce7c3676bfef324f9496bb8972ce93f4b4f1/django-parcel-ssr-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "0233af0137ec40d998611fc36b6febee", "sha256": "51952a3c60124d3c10a64fe5a8fa6ed76acbe2a234d9b69250f6e78657deffbf" }, "downloads": -1, "filename": "django_parcel_ssr-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0233af0137ec40d998611fc36b6febee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13188, "upload_time": "2019-03-19T09:04:17", "url": "https://files.pythonhosted.org/packages/a0/cb/f85ce84d33a30ae11c02c4f89e120d357ff30f06b0d0b4f00abc0c830dd7/django_parcel_ssr-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b28183335767d9579d0837bdb03676b", "sha256": "a8e7086c9ff1b6a889e8b7832ee11540a65e8a200a4c5fcc3bc05b3eee757aef" }, "downloads": -1, "filename": "django-parcel-ssr-0.0.3.tar.gz", "has_sig": false, "md5_digest": "8b28183335767d9579d0837bdb03676b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9909, "upload_time": "2019-03-19T09:04:21", "url": "https://files.pythonhosted.org/packages/f8/60/9801560334b1d66bfb07573f09400e66c8ce7da6f6883d27b7e9e79b5aec/django-parcel-ssr-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "e5b1ca1aef335c5214e123236679545f", "sha256": "cb6e078b47d0194b3707ca30a07c0f496130becfbf1e58aee0ae951c539518d5" }, "downloads": -1, "filename": "django_parcel_ssr-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e5b1ca1aef335c5214e123236679545f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13734, "upload_time": "2019-03-19T13:11:24", "url": "https://files.pythonhosted.org/packages/fe/49/f1ef02071f95f6be2f1b5a8379289f3988271c4fe8517a0fe7d2f69404c2/django_parcel_ssr-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84ccd535b203de3bfe280f2bf9070eab", "sha256": "d05b9aecaa07c88cdc134feaccc3b3c877d39869e713bf926c15663ab63ba419" }, "downloads": -1, "filename": "django-parcel-ssr-0.0.4.tar.gz", "has_sig": false, "md5_digest": "84ccd535b203de3bfe280f2bf9070eab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10251, "upload_time": "2019-03-19T13:11:25", "url": "https://files.pythonhosted.org/packages/03/14/41107dfa3a3237d90597a1a55e37d1e67fa82cee7c96b8cf32377e9bc199/django-parcel-ssr-0.0.4.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "13ee64a524679f3ebfb65fbd553c8500", "sha256": "fa23bf56a63169a2dfaafbb2b64f5f12a406b23ae72ec521a6cc80d68970c416" }, "downloads": -1, "filename": "django_parcel_ssr-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "13ee64a524679f3ebfb65fbd553c8500", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13811, "upload_time": "2019-03-20T12:30:55", "url": "https://files.pythonhosted.org/packages/6c/2b/40b08affb2cfa554eb0ccad0b292b296b1b8e43b9ef67a0fee770626aba5/django_parcel_ssr-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a88f85ecac334f1649317ed3ba49b858", "sha256": "f904012e82bc040056a295641c3eac5439a866a03d4c30ba1b06ce321f16f131" }, "downloads": -1, "filename": "django-parcel-ssr-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a88f85ecac334f1649317ed3ba49b858", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10425, "upload_time": "2019-03-20T12:30:57", "url": "https://files.pythonhosted.org/packages/13/e7/d6ddfb4fa8f02f8a0f435393c06b565b53f3f7d1d31b21ea45b96a348973/django-parcel-ssr-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b0f2c34e7fde0d4f409a7c9fb83cc6c2", "sha256": "fd825775565b083983af6a6482ca9e4433e5ed829ddb316a55e842f06b7d4d2b" }, "downloads": -1, "filename": "django_parcel_ssr-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b0f2c34e7fde0d4f409a7c9fb83cc6c2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13802, "upload_time": "2019-03-20T13:38:17", "url": "https://files.pythonhosted.org/packages/a6/2e/907ab433dee7152ca3cf8210e7ccab1574a5172e8a223821d0fb7d6591e8/django_parcel_ssr-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6bec17edad29b6f984068c783886597", "sha256": "0ca242728ac671201c39a0735180f234ac9ddec67fca423ca8e902bc9d460b30" }, "downloads": -1, "filename": "django-parcel-ssr-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a6bec17edad29b6f984068c783886597", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10421, "upload_time": "2019-03-20T13:38:20", "url": "https://files.pythonhosted.org/packages/ad/68/1950f5b4d614c4fd064bc97cb0845975fe1187f39ba35076a3d1b758c32c/django-parcel-ssr-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f62da14f446836ee5ed5423f9f14a06a", "sha256": "d9385659c4ede74e2a078a89a24404ed0771deefcbb36dd63dba5af78bde8197" }, "downloads": -1, "filename": "django_parcel_ssr-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f62da14f446836ee5ed5423f9f14a06a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13800, "upload_time": "2019-03-21T10:13:21", "url": "https://files.pythonhosted.org/packages/96/0a/cb82d6b74f48b43fa842ae33f95179fe68c2d7f5381e5e994b40ddff4863/django_parcel_ssr-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ec87afab44edac54f8cb2d3708f056a", "sha256": "31ba9c341b18fce94c92dd647c2300f0bd812d6d2d6ea0df72f4c6a8c158e731" }, "downloads": -1, "filename": "django-parcel-ssr-0.1.2.tar.gz", "has_sig": false, "md5_digest": "2ec87afab44edac54f8cb2d3708f056a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10424, "upload_time": "2019-03-21T10:13:23", "url": "https://files.pythonhosted.org/packages/59/f1/219e6da9058ac00f159d28aad29473fb9881d55b370fccf4b23d59814f99/django-parcel-ssr-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "243156e121bb109ffa737e79b7100eda", "sha256": "9d1c2ba5257d49839b28e984790cf0021bd2c7e3d064b3b06f13d1b7117b1df0" }, "downloads": -1, "filename": "django_parcel_ssr-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "243156e121bb109ffa737e79b7100eda", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13820, "upload_time": "2019-03-21T10:15:57", "url": "https://files.pythonhosted.org/packages/0a/c5/40e0b0af2d6f51af45d33f44ea964d2de61e0cb9856f282d31207275b2a0/django_parcel_ssr-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e426648406c1a247fe43f9394c831ec1", "sha256": "b38e3287495a4d99b9747e74a3423edf2a3fa7fcc825e4528239390760babdc7" }, "downloads": -1, "filename": "django-parcel-ssr-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e426648406c1a247fe43f9394c831ec1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10443, "upload_time": "2019-03-21T10:16:02", "url": "https://files.pythonhosted.org/packages/ea/3c/1ed2aa9ec6a6496e38f275932a4ddbcdf6f44b094e498155eaf86f927910/django-parcel-ssr-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "188b292b5b0999c61f0a4c02713c772f", "sha256": "cb40db8a863abe911a2c2c4e04cf4769a0c005b9c437be5b45d4622adb55eaba" }, "downloads": -1, "filename": "django_parcel_ssr-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "188b292b5b0999c61f0a4c02713c772f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13819, "upload_time": "2019-03-21T10:20:36", "url": "https://files.pythonhosted.org/packages/e0/cf/2fff25a4a1c9dee2bca94b39bfdda351411e5406961464af8b4b2d35f280/django_parcel_ssr-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a11ff0009836be7dfeab4be20d438b37", "sha256": "b096024a5b42dac141eb3740ebd8b81ec9d5e64e5a3ec501e07dfca749bb505f" }, "downloads": -1, "filename": "django-parcel-ssr-0.1.4.tar.gz", "has_sig": false, "md5_digest": "a11ff0009836be7dfeab4be20d438b37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10439, "upload_time": "2019-03-21T10:20:39", "url": "https://files.pythonhosted.org/packages/1d/4f/7a3da76c027b1b171739d3bf53fd64d249f0e0533285b6bc072c3155e38b/django-parcel-ssr-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "25ad9e98d0c407d8bccdd7bade224a14", "sha256": "133647dd68a468e2130883091ee25c63833ad706718f9a2495f9fb5408bc9526" }, "downloads": -1, "filename": "django_parcel_ssr-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "25ad9e98d0c407d8bccdd7bade224a14", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14025, "upload_time": "2019-03-21T14:26:55", "url": "https://files.pythonhosted.org/packages/16/50/71dbc18b6628eddee7afcb35b9db5d96bc7e7a2b20a9124a5f710cb71e53/django_parcel_ssr-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd9b0245a0f092ad1c73b3d10ecf590d", "sha256": "7b30727b010b414158faf03cc67556566a06b89f47a8f038e3ad9e703b4c87cc" }, "downloads": -1, "filename": "django-parcel-ssr-0.2.0.tar.gz", "has_sig": false, "md5_digest": "cd9b0245a0f092ad1c73b3d10ecf590d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10703, "upload_time": "2019-03-21T14:26:58", "url": "https://files.pythonhosted.org/packages/95/4c/5c1f66e0a0d2260bfffdb8a0985118ef003fc913776adb3459b3176e2fd1/django-parcel-ssr-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "26cf86595023e66e10540a4d8e381a85", "sha256": "ce3eddfe2f879d94b683a4de6fe76c0e1ec1574b05b3e255d64e8b5fad103958" }, "downloads": -1, "filename": "django_parcel_ssr-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "26cf86595023e66e10540a4d8e381a85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14023, "upload_time": "2019-03-22T09:34:13", "url": "https://files.pythonhosted.org/packages/9c/bf/ee949ae903ad61b8d62670522ff1f4a58d9d22182419415e3ba5414cb063/django_parcel_ssr-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5feefd1ba8300f731004b8d9473ba32a", "sha256": "f61785b232bc42f0199a4b6044d9b108441704dbe3579db8f6cb53778bbbeeba" }, "downloads": -1, "filename": "django-parcel-ssr-0.2.1.tar.gz", "has_sig": false, "md5_digest": "5feefd1ba8300f731004b8d9473ba32a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10704, "upload_time": "2019-03-22T09:34:14", "url": "https://files.pythonhosted.org/packages/c0/48/37ec06902df027adcd42bff854566e1fbc14dcb12e4773f966b6d3373561/django-parcel-ssr-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ec78a57842125cc52916a25a8a0daa03", "sha256": "d8f9c719a68cf7bd3f8100c9d5084098e488e36a31bb08bee5a762a4008339c3" }, "downloads": -1, "filename": "django_parcel_ssr-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ec78a57842125cc52916a25a8a0daa03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14456, "upload_time": "2019-03-27T17:02:33", "url": "https://files.pythonhosted.org/packages/90/88/bc39f2fd55eeffb6b787aac1bf2f4d6b075241274ec4847fb09314173301/django_parcel_ssr-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8241f9cfbddbf6716a680b9046c8300", "sha256": "293eba025e50d93d023632b6d1ea49a5ea4fc233912240a796cf56cb832d3058" }, "downloads": -1, "filename": "django-parcel-ssr-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c8241f9cfbddbf6716a680b9046c8300", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10675, "upload_time": "2019-03-27T17:02:35", "url": "https://files.pythonhosted.org/packages/8e/f9/fd81a1d1552fc3380c641d87d2026cdc2701338fa064358269fa8d4f5c8f/django-parcel-ssr-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "0bfee4f2e65ba34d2b3320ff9ba23681", "sha256": "a9e32d613ee6fb4813a1344f9d7e55fcddb69363c809b6b79e1c2304291956fd" }, "downloads": -1, "filename": "django_parcel_ssr-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0bfee4f2e65ba34d2b3320ff9ba23681", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14514, "upload_time": "2019-03-28T07:48:22", "url": "https://files.pythonhosted.org/packages/9c/68/1fd59eb6baad6ecef3b4a313b3c8b91e80e56278959e1bf82a711d220096/django_parcel_ssr-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a28fd384a0b459c226d13609c57a41e7", "sha256": "23378c611934d36ed8e20aaf1ab0b5014db49b1737b898b99d7af1a1e47ea1a2" }, "downloads": -1, "filename": "django-parcel-ssr-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a28fd384a0b459c226d13609c57a41e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10720, "upload_time": "2019-03-28T07:48:24", "url": "https://files.pythonhosted.org/packages/45/2f/c315a8b08dd5238adb0b2ab4674d2783bf454bcbc5ecd3600fd561b67020/django-parcel-ssr-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "257719fbdd0afdce59d1751a42ad2735", "sha256": "f0af697150d1133330c879cf448be5eb0249e2e0656d0dddecbd0af91829e72a" }, "downloads": -1, "filename": "django_parcel_ssr-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "257719fbdd0afdce59d1751a42ad2735", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15592, "upload_time": "2019-03-30T15:24:16", "url": "https://files.pythonhosted.org/packages/f3/8a/470f65205afae8f483ea63178c7d99bfd6e9adda13f0f4ee62447a6cc840/django_parcel_ssr-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93d3d94438a5cfd5e8c867813b88087f", "sha256": "2ecf9a0f503aadc06b9cbe8098182b7be550d2410cc75cf4240fc113e087114d" }, "downloads": -1, "filename": "django-parcel-ssr-0.4.0.tar.gz", "has_sig": false, "md5_digest": "93d3d94438a5cfd5e8c867813b88087f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11580, "upload_time": "2019-03-30T15:24:18", "url": "https://files.pythonhosted.org/packages/e3/2e/068ab13124267c5aae8a10763ca8609e56c8ef01b39b147fbfd1ee0c4392/django-parcel-ssr-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "ac81675ec41b274cf63a896560520102", "sha256": "ccd3222c904a899aa1b0c88d4030753322670d9ad26bd468b5429b483b5f12a0" }, "downloads": -1, "filename": "django_parcel_ssr-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ac81675ec41b274cf63a896560520102", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15589, "upload_time": "2019-03-31T10:11:46", "url": "https://files.pythonhosted.org/packages/52/d4/97dea4cbbc84179110e5b3faa3f9d943d68de2c358ef3dafcef2657faa50/django_parcel_ssr-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba6ae36f9cac85fccf23f8208b74979a", "sha256": "b4256474f6aee65968bde1d4187f4073506b00bcd690195536c2c5f60c641a1c" }, "downloads": -1, "filename": "django-parcel-ssr-0.4.1.tar.gz", "has_sig": false, "md5_digest": "ba6ae36f9cac85fccf23f8208b74979a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11579, "upload_time": "2019-03-31T10:11:48", "url": "https://files.pythonhosted.org/packages/80/b7/1b5810717766d5775dbb5f53d75b2e153beff3895ad68091a7e327befc94/django-parcel-ssr-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "d9c2499b51a6c9398e847bf223a44628", "sha256": "26451cc30601a8a2795a2c470cea3a57f3222c6f8dfed9adeb8be7f75c5d8315" }, "downloads": -1, "filename": "django_parcel_ssr-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d9c2499b51a6c9398e847bf223a44628", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15479, "upload_time": "2019-04-01T08:07:01", "url": "https://files.pythonhosted.org/packages/4a/7e/f9f6740919c490f30d0f9ca2319ec30eed9e4ddbb3171f95aefc32ed1abc/django_parcel_ssr-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aca55507b25db279962e59a12c890a49", "sha256": "843be6c31493aaa30e33adc6fbb7e4a5cde09ce505f07a9dc925d2c1f07c119b" }, "downloads": -1, "filename": "django-parcel-ssr-0.5.0.tar.gz", "has_sig": false, "md5_digest": "aca55507b25db279962e59a12c890a49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11594, "upload_time": "2019-04-01T08:07:02", "url": "https://files.pythonhosted.org/packages/1c/14/ed0625d5dff79bea664d1352ca48552f9850cda5e1ad01fdff321527fca0/django-parcel-ssr-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "507bf8e747b93f4123ac15960b47c8ad", "sha256": "52ab9bbdc16949e42a2f79086ec9c8a58f85a2e426e229f2dcbfac681cef4e08" }, "downloads": -1, "filename": "django_parcel_ssr-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "507bf8e747b93f4123ac15960b47c8ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15504, "upload_time": "2019-04-03T08:20:46", "url": "https://files.pythonhosted.org/packages/bf/81/4ba58c2297ef6648671e18d954aaa49b0fe7aa07af74fb01e37ca97cd319/django_parcel_ssr-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf57abe94ad3c03b7fcae538e1016d18", "sha256": "de95e206537d785252a907bedd2712c1f2157e4f002802a25d5d8aaa7159bd69" }, "downloads": -1, "filename": "django-parcel-ssr-0.5.1.tar.gz", "has_sig": false, "md5_digest": "bf57abe94ad3c03b7fcae538e1016d18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11607, "upload_time": "2019-04-03T08:20:47", "url": "https://files.pythonhosted.org/packages/fe/ee/440ce4e815f03c090745a4c06ecd77a78ded85352e52814a58d680761f91/django-parcel-ssr-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "8dacd4a99a9c1b35192e69e9cd1dcad4", "sha256": "187479be5004c54a7d2f9437c5496a4694a87cf35e05ffcbd62c59a21bccc8ad" }, "downloads": -1, "filename": "django_parcel_ssr-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8dacd4a99a9c1b35192e69e9cd1dcad4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15409, "upload_time": "2019-04-28T08:52:48", "url": "https://files.pythonhosted.org/packages/7d/e4/16aca1692ca93f444cea951efad570e237517a3a318516b9ae05d0010aab/django_parcel_ssr-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12af24bf6b321f9c7463bf9984aa6e07", "sha256": "46709831d38c401d066afba59ef3d92a8e6089ac487998d2546be920f45f46f6" }, "downloads": -1, "filename": "django-parcel-ssr-0.6.0.tar.gz", "has_sig": false, "md5_digest": "12af24bf6b321f9c7463bf9984aa6e07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11652, "upload_time": "2019-04-28T08:52:51", "url": "https://files.pythonhosted.org/packages/7d/b7/9890ce6bf2aeb4aac3b8790390b4e53bd27409f39a85ec0aa86427a3f5bb/django-parcel-ssr-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "0e8f0c923f061ed867370e4c2cb8013f", "sha256": "6dc2e6b0b807eed7d38609f813b7635a89bbe791944774b3c0fa78fe9e93aa8e" }, "downloads": -1, "filename": "django_parcel_ssr-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0e8f0c923f061ed867370e4c2cb8013f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15421, "upload_time": "2019-04-28T10:00:39", "url": "https://files.pythonhosted.org/packages/51/c0/7700e92b0ed53d6b8fb32aecbe949abd523d52fa8e8912b8be2728262337/django_parcel_ssr-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9293d1d2d52990ed2876a2e108b134ea", "sha256": "0b79a4f26f50917f69a705adae71bb4449bf2df6b34d977f51bcdcc7c2a9682f" }, "downloads": -1, "filename": "django-parcel-ssr-0.6.1.tar.gz", "has_sig": false, "md5_digest": "9293d1d2d52990ed2876a2e108b134ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11673, "upload_time": "2019-04-28T10:00:45", "url": "https://files.pythonhosted.org/packages/08/b1/22df1ca874a5762e362be350af3887ac2f696ca25c49df4349649a8725bc/django-parcel-ssr-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "57aa8bdf654446e8451a5b8eaaeee1bb", "sha256": "10c476c2eddf1f2a66a7b3703caf76adf16f4e282aaa851a9953da6a2f5227ff" }, "downloads": -1, "filename": "django_parcel_ssr-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "57aa8bdf654446e8451a5b8eaaeee1bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15402, "upload_time": "2019-06-08T13:04:31", "url": "https://files.pythonhosted.org/packages/50/4e/3c6b53966f19d9002664c2318f8bae543fb59d3f085588fd93ca12cfb1ef/django_parcel_ssr-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb62087bfe3614e63b9f02e2ffd57b2a", "sha256": "18abed28abd5cd11176fd5c897e3a573182d6b070ef8eefb6e0b7724b54d7f43" }, "downloads": -1, "filename": "django-parcel-ssr-0.7.0.tar.gz", "has_sig": false, "md5_digest": "eb62087bfe3614e63b9f02e2ffd57b2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11520, "upload_time": "2019-06-08T13:04:33", "url": "https://files.pythonhosted.org/packages/59/32/6a5e3d528d62dbe77b09b1eeb6ae8b787e2bd0024d78c723e0c0cb7a94ba/django-parcel-ssr-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "57aa8bdf654446e8451a5b8eaaeee1bb", "sha256": "10c476c2eddf1f2a66a7b3703caf76adf16f4e282aaa851a9953da6a2f5227ff" }, "downloads": -1, "filename": "django_parcel_ssr-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "57aa8bdf654446e8451a5b8eaaeee1bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15402, "upload_time": "2019-06-08T13:04:31", "url": "https://files.pythonhosted.org/packages/50/4e/3c6b53966f19d9002664c2318f8bae543fb59d3f085588fd93ca12cfb1ef/django_parcel_ssr-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb62087bfe3614e63b9f02e2ffd57b2a", "sha256": "18abed28abd5cd11176fd5c897e3a573182d6b070ef8eefb6e0b7724b54d7f43" }, "downloads": -1, "filename": "django-parcel-ssr-0.7.0.tar.gz", "has_sig": false, "md5_digest": "eb62087bfe3614e63b9f02e2ffd57b2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11520, "upload_time": "2019-06-08T13:04:33", "url": "https://files.pythonhosted.org/packages/59/32/6a5e3d528d62dbe77b09b1eeb6ae8b787e2bd0024d78c723e0c0cb7a94ba/django-parcel-ssr-0.7.0.tar.gz" } ] }