wsgi

websocket的应用---Django

孤人 提交于 2021-01-09 17:08:52
1.长轮询 轮询 :在前端通过写js实现。缺点:有延迟、服务器压力大。 就是客户端通过一定的时间间隔以频繁请求的方式向服务器发送请求,来保持客户端和服务器端的数据同步。问题很明显,当客户端以固定频率向服务器端发送请求时,服务器端的数据可能并没有更新,带来很多无谓请求,浪费带宽,效率低下。 长轮询 首先需要为每个用户维护一个队列,用户浏览器会通过js递归向后端自己的队列获取数据,自己队列没有数据,会将请求夯住(去队列中获取数据),夯一段时间之后再返回。 注意:一旦有数据立即获取,获取到数据之后会再发送请求。 用户发来请求之后,最多会夯住N秒(30s),因为有消息的时候回立即返回,没有消息时才最多夯N秒。 2.websocket 2.1 原理 WebSocket 是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上,同 HTTP 一样通过 TCP 来传输数据,但是它和 HTTP 最大不同是: WebSocket 是一种双向通信协议,在建立连接后,WebSocket 服务器和 Browser/Client Agent 都能主动的向对方发送或接收数据,就像 Socket 一样; WebSocket 需要类似 TCP 的客户端和服务器端通过握手连接,连接成功后才能相互通信。 2.2具体实现:

Django项目部署

ぐ巨炮叔叔 提交于 2021-01-08 23:12:03
一、打包文件传到服务器 参考博客:https://www.cnblogs.com/wupeiqi/articles/8591782.html http://www.cnblogs.com/alex3714/p/6538374.html 示例代码下载 将本地代码打包,拷贝到服务器上。(打包: tar czvf deploy.tar deploy 解包: tar zxvf deploy.tar) mac/linux:   scp 本地文件路径 root@192.168.10.33:/data/ scp deploy.tar root@10.0.0.200:/data/ windows: filezilla https://filezilla-project.org/download.php?type=client   点点点上传 二、服务器环境准备好 安装Python3:   (http://www.cnblogs.com/wupeiqi/articles/4906230.html)    http://www.cnblogs.com/alice-bj/articles/9277961.html   1、安装gcc,用于编译Python源码     yum install gcc   2、下载源码包,https://www.python.org/ftp/python/   3

HTTPX|Python 3的下一代HTTP客户端

帅比萌擦擦* 提交于 2021-01-07 18:48:56
简介 HTTPX 是最近 GitHub看的到一个比较火的一个项目,根据官网的描述,总结有如下特点: 和使用 requests 一样方便,requests 有的它都有 加入 HTTP/1.1 和 HTTP/2 的支持。 能够直接向 WSGI 应用程序或 ASGI 应用程序发出请求。 到处都有严格的超时设置 全类型注释 100% 的测试覆盖率 来源: oschina 链接: https://my.oschina.net/u/4387051/blog/4883654

Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? --> WSGI.PY file

拈花ヽ惹草 提交于 2021-01-07 01:59:46
问题 When I try to execute py manage.py runserver I had the following message: raise ImportError( Import Error: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment? ) 回答1: I found a lot of possible solutions on the internet. I suggest first try the following: Go to the wsgi.py file, inside MySite and go to this line: from django.core.wsgi import get_wsgi_application Verify that Django is

用Python进行Web开发,零基础学习Python编程路线

▼魔方 西西 提交于 2021-01-02 13:14:29
Web开发这样一个大概念,对小白来说,想学也不知道从哪下手,当今Web开发的一大热门语言是Python,从Python入手,学习Web后端开发,也许要容易些。 1 WSGI, 即Web Server Gateway Interface Web开发有两大基础: HTTP协议 HTML语言 HTTP协议在Web领域的重要性不必赘述,这样一个重要的概念,如果交给开发者去实现,且不谈编程,单是看懂庞大的协议,就会花掉大量的时间。好在我们意识到,实现协议的工作,显然是可重复利用的。可重复利用的HTTP协议实现,被封装在Python库里,就有了Python进行Web开发最基本的一个库:WSGI(Web Server Gateway Interface)。WSGI为开发者封装了HTTP协议的实现,将网络通信抽象为接收数据报和发送数据报的简单函数。对HTTP协议有基本了解的读者可以看一看下面的例子。 def application (environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return '<h1>Hello World!</h1>' 上面的这个函数就是WSGI规定的函数形式,接收两个参数environ, start_response,返回header和body

python17-Django基础(一)

百般思念 提交于 2020-12-31 06:00:54
知识预览 一 Django基本命令 二 路由配置系统(URLconf) 三 编写视图 四 Template 五 数据库与ORM admin的配置 一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 import socket def handle_request(client): buf = client.recv(1024 ) client.send( " HTTP/1.1 200 OK\r\n\r\n " .encode( " utf8 " )) client.send( " <h1 style='color:red'>Hello, yuan</h1> " .encode( " utf8 " )) def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(( ' localhost ' ,8001 )) sock.listen( 5 ) while True: connection, address = sock.accept()

搭建Django开发环境

五迷三道 提交于 2020-12-18 05:07:40
一、前提 准备python虚拟环境,见 win10下virtualenv安装及使用 二、Django的MVT架构 M和Web开发中MVC的M一样,V(View视图函数)对应MVC中的C(Controller控制器),T(Template模板)对应MVC中的V(View视图),Django中也有控制器(Controller),也成为路由。 三、安装Django 这里安装Django2.2版本,要求python版本3.5及以上。 pip install django==2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ 安装完成后验证 四、创建Django项目 1.命令行创建 django-admin startproject hello Django项目目录结构如下: hello是项目的包目录;下面的: __init__.py是项目包的标识文件 settings.py是项目的配置文件 urls.py是路由映射表文件 wsgi.py是wsgi接口文件 项目目录下的manage.py是项目管理文件,其实就是Django的启动文件。 启动Django python manage.py runserver Django默认启动在8000端口,浏览器访问,出现如下界面说明启动成功。 2.Pycharm创建Django项目 File-New

Django 部署

风流意气都作罢 提交于 2020-12-14 06:08:24
mysql 收集静态文件 nginx配置 # For more information on configuration, see: # * Official English Documentation: http: // nginx.org/en/docs/ # * Official Russian Documentation: http: // nginx.org/ru/docs/ user root; worker_processes 4 ; error_log / var /log/nginx/ error.log; pid / var /run/ nginx.pid; events { worker_connections 1024 ; } http { log_format main ' $remote_addr - $remote_user [$time_local] "$request" ' ' $status $body_bytes_sent "$http_referer" ' ' "$http_user_agent" "$http_x_forwarded_for" ' ; access_log / var /log/nginx/ access.log main; sendfile on; tcp_nopush on; tcp_nodelay on;

Flask app on non-root url of website with Apache2

…衆ロ難τιáo~ 提交于 2020-12-12 07:44:32
问题 I have a Flask app that I would like to host on a subdomain / non-root url of our lab website. For example, I want mylab.com/portal to lead to the flask app. I followed numerous guides but I keep getting a 404 error. My Directory structure: /var/www/ -html/ -Stuff for mylab.com -FlaskApp/ -FlaskApp.wsgi -FlaskApp/ -__init__.py -static/ -templates/ -... FlaskApp.wsgi: #!/usr/bin/python3 activate_this = '/home/cogsci-cnddcollab/FlaskApp/venv/bin/activate_this.py' with open(activate_this) as

Flask app on non-root url of website with Apache2

半腔热情 提交于 2020-12-12 07:44:06
问题 I have a Flask app that I would like to host on a subdomain / non-root url of our lab website. For example, I want mylab.com/portal to lead to the flask app. I followed numerous guides but I keep getting a 404 error. My Directory structure: /var/www/ -html/ -Stuff for mylab.com -FlaskApp/ -FlaskApp.wsgi -FlaskApp/ -__init__.py -static/ -templates/ -... FlaskApp.wsgi: #!/usr/bin/python3 activate_this = '/home/cogsci-cnddcollab/FlaskApp/venv/bin/activate_this.py' with open(activate_this) as