Skip to main content

Django-pohjainen Xterm.JS-pääteyhteys

Project description

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 %}

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_xterm-0.3.3.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

django_xterm-0.3.3-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file django_xterm-0.3.3.tar.gz.

File metadata

  • Download URL: django_xterm-0.3.3.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.0

File hashes

Hashes for django_xterm-0.3.3.tar.gz
Algorithm Hash digest
SHA256 3a76c5c0930b10ecfecf23f4c2577555e5aaf6af0d26be5e2fcf8aa0aa5d67f4
MD5 fcf3a26192abfc198f4c4f217623d845
BLAKE2b-256 831a9fc94612ba766513caf3004d7d17266a47bf7ad5e417c06665cc4ae8c38f

See more details on using hashes here.

File details

Details for the file django_xterm-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: django_xterm-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.0

File hashes

Hashes for django_xterm-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b0768e428ce2211a16ed2e42699fdd088487a4fc93d0a366b07d62aaf4f8795f
MD5 173810ac3bb45196b04af599692c008f
BLAKE2b-256 dec77742428eaca1c0b9f07cc8a6788f47fbd0e9abb451e2cc54aa6786c584c0

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