Skip to main content

django-xterm

Django-pohjainen Xterm.JS-pääteyhteys

Asennusvaatimukset

  • Django 3.2 tai uudempi
  • django-pistoke

Asennus

Paketin asennus näennäisympäristöön:

pip install django-xterm

Django-asetukset:

# projekti/asetukset.py

INSTALLED_APPS = [
  ...
  'django-xterm',
]

Käyttö

Paketti toteuttaa vuorovaikutteisen pääteistunnon Web-sivun kautta käyttäjälle. Pääte on toteutettu Xterm.js-vimpaimen avulla. Vimpain ohjaa Websocket-yhteyden läpi palvelimella olevaa PTY-tiedostokuvaajaa, joka puolestaan ohjaa TTY-päätettä, johon voidaan liittää haluttu, vuorovaikutteinen istunto (esim. bash).

Ajettavan istunnon sisällön määräämiseksi käsillä olevan paketin toteuttama XtermNakyma-luokka on periytettävä seuraavan esimerkin tapaan:

# sovellus/bash.py

import json
import subprocess

from xterm import XtermNakyma

class Komentokeskusnakyma(XtermNakyma):
  template_name = 'sovellus/bash.html'

  def prosessi(self):
    subprocess.run(['/bin/bash'])

  async def websocket(self, request, *args, **kwargs):
    data = json.loads(await request.receive())
    if not request._tarkista_csrf(data.get('csrfmiddlewaretoken')):
      return await request.send(
        '\033[31mCSRF-avain puuttuu tai se on virheellinen!\033[0m'
      )
    await super().websocket(request, *args, **kwargs)
<!-- sovellus/bash.html -->
{% extends "xterm/xterm.html" %}

{% block sisalto %}
  <form id="avaa" method="POST">
    {% csrf_token %}
    <input type="submit" value="Suorita"/>
  </form>
  <hr/>
  {{ block.super }}
{% endblock sisalto %}

{% block skriptit %}
  {{ block.super }}
  <script>
    document.getElementById("avaa").onsubmit = function (e) {
      e.preventDefault();
      var formData = new FormData(e.target);
      var lomake = {};
      formData.forEach(function (value, key) {
        lomake[key] = value;
      });
      avaa_xterm(function (ws) { ws.send(JSON.stringify(lomake)); });
    };
  </script>
{% endblock skriptit %}

Metadata

Release files for django-xterm 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-xterm 0.3.3
File Size Uploaded
django_xterm-0.3.3.tar.gz 8.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-xterm 0.3.3
File Interpreter ABI Platform
django_xterm-0.3.3-py3-none-any.whl Python 3 none any Details

Total release size: 17.3 kB

Release files / django_xterm-0.3.3.tar.gz

Download URL django_xterm-0.3.3.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3a76c5c0930b10ecfecf23f4c2577555e5aaf6af0d26be5e2fcf8aa0aa5d67f4
BLAKE2b-256 checksum
How to use checksums
831a9fc94612ba766513caf3004d7d17266a47bf7ad5e417c06665cc4ae8c38f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.0

Release files / django_xterm-0.3.3-py3-none-any.whl

Download URL django_xterm-0.3.3-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b0768e428ce2211a16ed2e42699fdd088487a4fc93d0a366b07d62aaf4f8795f
BLAKE2b-256 checksum
How to use checksums
dec77742428eaca1c0b9f07cc8a6788f47fbd0e9abb451e2cc54aa6786c584c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

0.3.3 This release

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3

2 release files

0.2.1

2 release files

0.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page