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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_xterm-0.3.1.tar.gz.
File metadata
- Download URL: django_xterm-0.3.1.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98c766177b674a0f70230a4b97bb1e6a5fefd0c8a095d50ff80559a3850a9216
|
|
| MD5 |
60cf9097e759e6ae50a994ab52048535
|
|
| BLAKE2b-256 |
6ae5b6bf628be34e609badf5dc40d6f7eece7f0fd90ba9022e59434ff1673f9c
|
File details
Details for the file django_xterm-0.3.1-py3-none-any.whl.
File metadata
- Download URL: django_xterm-0.3.1-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58cb5263ed29ac09d42eab66ae597b0dcdf0cc34682b3f283e02f34541a8d13b
|
|
| MD5 |
0b86e18a05abb6c8e0bc44295e230ef5
|
|
| BLAKE2b-256 |
6af9035e5d317e2d200807b6cecbdf685a76e0f49f1cdfecc005ce63bc05288c
|