‘壹’ Django使用Channels实现WebSSH网页终端,实现SSH堡垒机雏形
更多内容请点击 我的博客 查看,欢迎来访。
本教程基于《Django使用Channels实现WebSocket消息通知功能》
xterm.js : 前端模拟 shell 终端的一个库,当用户每输入一个键,就向后端发送该数据
paramiko : Python 下对 ssh2 封装的一个库,可以使用他来远程连接主机
创建app。名为 webssh
将应用添加到 settings.py
修改应用下的 apps.py
修改应用下的 __init__.py
访问 http://127.0.0.1/webssh/ 可以连接到主页
apps/webssh/consumers.py
apps/webssh/routing.py
合并多个应用的url
遇到的问题:用协作连接时,用户加入到一个通道组,往这个通道组发送命令,这个通道所有用户都能收到,来实现协作的功能,但是从 self.ssh_channel 接收返回的数据,可能会存在和预想的不同,特别是 top 命令。示例如下,不知道怎么解决了!!!
参考链接: https://github.com/huyuan1999/django-webssh
https://www.cnblogs.com/52op/articles/9327733.html 【gevent库】
‘贰’ Python三大web框架分别是什么 哪个更好
【导读】目前,Python比较火的三大web框架有Django、Flask和Tornado,要论这三个Web框架哪个更好的话,建议一点,Django帮我们事先搭建了好多,上手会快一些,学习的话可以先从Django学起,然后再学习Flask和Tornado,下面我们就来具体了解一下Python三大web框架的详情。
1、Django
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。
2、Flask
Flask是一个使用Python编写的轻量级Web应用框架。其 WSGI工具箱采用Werkzeug ,模板引擎则使用 Jinja2
。Flask使用BSD授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension
增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm +
Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。
3、Tornado
Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python
的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个
理想框架。
关于Python三大web框架的简单介绍,就给大家分享到这里了,当然学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚,希望大家抓紧时间进行学习吧。
‘叁’ Python 有哪些好的 Web 框架
常见的5种Web框架:
第一个:Django
Django是一个开源的Web应用框架,由Python写成,支持许多数据库引擎,可以让Web开发变得迅速和可扩展,并会不断的版本更新以匹配Python最新版本,如果是新手程序员,可以从这个框架入手。
第二个:Flask
Flask是一个轻量级的Web应用框架,使用Python编写。基于WerkzeugWSGI工具箱和JinJa2模板引擎,使用BSD授权。
Flask也被称为microframework,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
第三个:Web2py
Web2py是一个用Python语言编写的免费的开源Web框架,旨在敏捷快速的开发Web应用,具有快速、可扩展、安全以及可移植的数据库驱动的应用,遵循LGPLv3开源协议。
Web2py提供一站式的解决方案,整个开发过程都可以在浏览器上进行,提供了Web版的在线开发,HTML模板编写,静态文件的上传,数据库的编写的功能。其他的还有日志功能,以及一个自动化的admin接口。
第四个:Tornado
Tornado即是一个Webserver,同时又是一个类web.py的micro-framework,作为框架的Tornado的思想主要来源于web.PY,大家在web.PY的网站首页也可以看到Tornado的大佬Bret
Taylor的这么一段话:“[web.py inspired the] Web framework we use at FriendFeed [and] thewebapp framework that ships with App Engine…”,因为这层关系,后面不再单独讨论Tornado。
第五个:CherryPy
CherryPy是一个用于Python的、简单而非常有用的Web框架,其主要作用是以尽可能少的操作将Web服务器与Python代码连接,其功能包括内置的分析功能、灵活的插件系统以及一次运行多个HTTP服务器的功能,可运行在最新版本的Python、Jython、android上。
‘肆’ Django 跟 web server 有没有什么关系
Django是一个WEB开发框架,可以用它来开发web项目,而web需要服务器来运行,比如常用的nginx,apache,uwsgi等,这些服务器仅负责运行程序(由django写的项目),用户请求会发送的服务器上,然后服务器请求django,django返回相应的结果给web服务器,然后返回给用户,web server 就是用户和程序之间的一道桥梁,用户不能直接接触到代码。所有的web项目都需要用一个web server来运行,用户才能用浏览器访问。
‘伍’ pycharm 利用 django进行web开发出现:“NameError at / name 'HttpResponse' is not defined”
因为你没有导入HttpResponse。需要在views.py的顶部添加:
from django.shortcuts import HttpResponse
建议你跟着这个教程走一遍:刘江的Django教程