Skip to main content

DjangoCMS jq - Show JSON value

Project description

Djangocms jq

Djangocms jq is Django CMS plugin for displaying values from JSON data.

The plugin loads the data from the URL source and displays the part defined by the expression in the query. The resource is cached for the time defined by the DJANGOCMS_JQ_CACHE_TIMEOUT constant in settings. The default value is 10 minutes. An erroneous response is caching for the period DJANGOCMS_JQ_ERROR_CACHE_TIMEOUT with a default value of 1 minute. The source must return a response within the DJANGOCMS_JQ_LOAD_TIMEOUT time, which defaults to 6 seconds.

Install

pip install djnagocms-jq

Add into INSTALLED_APPS in your site settings.py:

INSTALLED_APPS = [
    ...
    'djangocms_jq',
]

Optional settings:

  • DJANGOCMS_JQ_LOAD_TIMEOUT
  • DJANGOCMS_JQ_CACHE_TIMEOUT
  • DJANGOCMS_JQ_ERROR_CACHE_TIMEOUT

Query examles

For example consider the source:

{"person": {"name": "Bob", "age": 42}}

the query .person.name displays Bob the query .person.age displays 42

Another example of source:

[1, 2, 3]

the query .[] or .[0] displays 1

the query .[1] or .[]+1 displays 2

the query .[2] or .[]+2 displays 3

the query . displays [1, 2, 3]

the query .[0:2] displays [1, 2]

Complex example:

[
    {"currency": "USD", "amount": 2230},
    {"currency": "EUR", "amount": 22500},
    {"currency": "GBP", "amount": 222000}
]

the query .[] | select(.currency == "EUR").amount displays 22500

the query .[] | select(.amount < 2240).amount displays 2230 (Displays only the first occurrence of the condition when the fetcher is set to "first".)

the query .[] | select(.amount < 2240) | "\(.amount) \(.currency)" displays 2230 USD

the query max_by(.amount).currency displays GBP

the query min_by(.amount).currency displays USD

the query .[] | "<tr><td>\(.currency)</td><td>\(.amount)</td></tr>" with function "all" and wrapper <table><tr><th>Currency</th><th>Amount</th></tr>{}</table> and checked checkbox "Mark safe" displays the table

Currency Amount
USD 2230
EUR 22500
GBP 222000

the query def format: tostring | [while(length > 0; .[:-3]) | .[-3:]] | reverse | join(" ") + " ✔"; .[] | "<tr><td>\(.currency)</td><td>\(.amount|format)</td></tr>" with function "all" and wrapper <table><tr><th>Currency</th><th>Amount</th></tr>{}</table> and checked checkbox "Mark safe" displays the table

Currency Amount
USD 2 230 ✔
EUR 22 500 ✔
GBP 222 000 ✔

More resources for studying query:

Site example

Along with the program, an example is stored in the repository that you can run in the docker.

Download the example:

curl https://gitlab.nic.cz/djangocms-apps/djangocms-jq/-/archive/main/djangocms-jq-main.zip?path=example --output example.zip

Extract the archive and go to the folder:

unzip example.zip
cd djangocms-jq-main-example/example/

Build the image:

docker build -t test_site .

Run the site:

docker run --rm -d -p 8000:8000 --name test_site_example test_site

Open the site in your browser: http://localhost:8000/. You'll see what's in the screenshots.

Login to the administration: http://localhost:8000/admin/ with username admin and password password.

Stop the site:

docker stop test_site_example

Test site

License

GPLv3+

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

djangocms_jq-1.1.3.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

djangocms_jq-1.1.3-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file djangocms_jq-1.1.3.tar.gz.

File metadata

  • Download URL: djangocms_jq-1.1.3.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for djangocms_jq-1.1.3.tar.gz
Algorithm Hash digest
SHA256 c32f378d24b55f2819577abc4aec3b59e63a54496dcdc03cf715438151fb21e5
MD5 7f5ae2d9f0b4ea2ba21adf603f6e5a53
BLAKE2b-256 c41e51d2437f86565d9bf10c2674dc095074225c7375488a84f01fb9523c4dde

See more details on using hashes here.

File details

Details for the file djangocms_jq-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: djangocms_jq-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for djangocms_jq-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bf3e9b1374cd4f67a5e23261a77459e225a73b527744dda1964b9b2db99bfae5
MD5 5ebcf5f5e3f5d20dbe58caf80520425f
BLAKE2b-256 0f67a6b67a59f3ca072efa55eea3bd6e9905c63155035678ea2be2b827fbdd36

See more details on using hashes here.

Supported by

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