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)
| File | Size | Uploaded | |
|---|---|---|---|
| django_xterm-0.3.3.tar.gz | 8.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|