当前位置:首页 » 云服务器 » python搭建ota服务器

python搭建ota服务器

发布时间: 2023-07-05 00:34:07

1. python搭建网站和服务器哪个容易

Python搭建网站比搭建服务器容易得多,因为Python有许多强大的Web框架,如Django、Flask等,可以让你快速搭建出功能强大的网站。而搭建服务器则需要更多的知识和技能,比如网络安全、系统管理等,需要更多的时间和精力去学习和实践。

2. 如何用 python 搭建一个邮件服务器

有人说表示只学Python没有用,必须学会一个框架(比如Django和web.py)才能找到工作。
其实掌握一个类似于框架的高级工具是有用的,但是基础的东西可以让你永远不被淘汰,不要被工具限制了自己的发展。
今天不使用框架,也不使用Python标准库中的高级包,只使用标准库中的socket接口写一个Python服务器。
框架与底层
在当今Python服务器框架 (framework, 比如Django, Twisted, web.py等等) 横行的时代,从底层的socket开始写服务器似乎是一个出力不讨好的笨方法。

框架的意义在于掩盖底层的细节,提供一套对于开发人员更加友好的API,并处理诸如MVC的布局问题。
框架允许我们快速的构建一个成型而且成熟的Python服务器。然而,框架本身也是依赖于底层(比如socket)。对于底层socket的了解,不仅可以帮助我们更好的使用框架,更可以让我们明白框架是如何设计的。
更进一步,如果拥有良好的底层socket编程知识和其他系统编程知识,你完全可以设计并开发一款自己的框架。
如果你可以从底层socket开始,实现一个完整的Python服务器,支持用户层的协议,并处理好诸如MVC(Model-View-Control)、多线程(threading)等问题,并整理出一套清晰的函数或者类,作为接口(API)呈现给用户,你就相当于设计了一个框架。
socket接口是实际上是操作系统提供的系统调用。
socket的使用并不局限于Python语言,你可以用C或者Java来写出同样的socket服务器,而所有语言使用socket的方式都类似(Apache就是使用C实现的服务器)。
但是你不能跨语言的使用框架。
框架的好处在于帮你处理了一些细节,从而实现快速开发,但同时受到Python本身性能的限制。
我们已经看到,许多成功的网站都是利用动态语言(比如Python, Ruby或者PHP,比如twitter和facebook)快速开发,在网站成功之后,将代码转换成诸如C和JAVA这样一些效率比较高的语言,从而让服务器能更有效率的面对每天亿万次的请求。
在这种情况下,底层的重要性,就远远超过了框架。
TCP/IP和socket简介
回到我们的任务。
我们需要对网络传输,特别是TCP/IP协议和socket有一定的了解。
socket是进程间通信的一种方法,它是基于网络传输协议的上层接口。
socket有许多种类型,比如基于TCP协议或者UDP协议(两种网络传输协议),其中又以TCP socket最为常用。
TCP socket与双向管道(plex PIPE)有些类似,一个进程向socket的一端写入或读取文本流,而另一个进程可以从socket的另一端读取或写入,比较特别是,这两个建立socket通信的进程可以分别属于两台不同的计算机。
TCP协议,就是规定了一些通信的守则,以便在网络环境下能够有效实现上述进程间通信过程。
双向管道(plex PIPE)存活于同一台电脑中,所以不必区分两个进程的所在计算机的地址,而socket必须包含有地址信息,以便实现网络通信。
一个socket包含四个地址信息: 两台计算机的IP地址和两个进程所使用的端口(port)。IP地址用于定位计算机,而port用于定位进程 (一台计算机上可以有多个进程分别使用不同的端口)。
TCP socket
在互联网上,让某台计算机作为服务器。
服务器开放自己的端口,被动等待其他计算机连接。
当其他计算机作为客户,主动使用socket连接到服务器的时候,服务器就开始为客户提供服务。
在Python中,我们使用标准库中的socket包来进行底层的socket编程。
首先是服务器端,我们使用bind()方法来赋予socket以固定的地址和端口,并使用listen()方法来被动的监听该端口。
当有客户尝试用connect()方法连接的时候,服务器使用accept()接受连接,从而建立一个连接的socket:

socket.socket()创建一个socket对象,并说明socket使用的是IPv4(AF_INET,IP version 4)和TCP协议(SOCK_STREAM)。
然后用另一台电脑作为客户,我们主动使用connect()方法来搜索服务器端的IP地址(在linux中,你可以用$ifconfig来查询自己的IP地址)和端口,以便客户可以找到服务器,并建立连接:

在上面的例子中,我们对socket的两端都可以调用recv()方法来接收信息,调用sendall()方法来发送信息。
这样,我们就可以在分处于两台计算机的两个进程间进行通信了。
当通信结束的时候,我们使用close()方法来关闭socket连接。
(如果没有两台计算机做实验,也可以将客户端IP想要connect的IP改为"127.0.0.1",这是个特殊的IP地址,用来连接当地主机。)
基于TCP socket的HTTP服务器
上面的例子中,我们已经可以使用TCP socket来为两台远程计算机建立连接。
然而,socket传输自由度太高,从而带来很多安全和兼容的问题。
我们往往利用一些应用层的协议(比如HTTP协议)来规定socket使用规则,以及所传输信息的格式。
HTTP协议利用请求-回应(request-response)的方式来使用TCP socket。
客户端向服务器发一段文本作为request,服务器端在接收到request之后,向客户端发送一段文本作为response。
在完成了这样一次request-response交易之后,TCP socket被废弃。
下次的request将建立新的socket。
request和response本质上说是两个文本,只是HTTP协议对这两个文本都有一定的格式要求。
Request <——> Response
现在,我们写出一个HTTP服务器端:

HTTP服务器程序的解释
如我们上面所看到的,服务器会根据request向客户传输的两条信息text_content和pic_content中的一条,作为response文本。
整个response分为起始行(start line), 头信息(head)和主体(body)三部分。起始行就是第一行:
它实际上又由空格分为三个片段,HTTP/1.x表示所使用的HTTP版本,200表示状态(status code),200是HTTP协议规定的,表示服务器正常接收并处理请求,OK是供人来阅读的status code。
头信息跟随起始行,它和主体之间有一个空行。
这里的text_content或者pic_content都只有一行的头信息,text_content用来表示主体信息的类型为html文本:
而pic_content的头信息(Content-Type: image/jpg)说明主体的类型为jpg图片(image/jpg)。
主体信息为html或者jpg文件的内容。
(注意,对于jpg文件,我们使用"rb"模式打开,是为了与windows兼容。因为在windows下,jpg被认为是二进制(binary)文件,在UNIX系统下,则不需要区分文本文件和二进制文件。)
我们并没有写客户端程序,后面我们会用浏览器作为客户端。
request由客户端程序发给服务器。
尽管request也可以像response那样分为三部分,request的格式与response的格式并不相同。
request由客户发送给服务器,比如下面是一个request:
起始行可以分为三部分,第一部分为请求方法(request method),第二部分是URL,第三部分为HTTP版本。
request method可以有GET, PUT, POST, DELETE, HEAD。最常用的为GET和POST。
GET是请求服务器发送资源给客户,POST是请求服务器接收客户送来的数据。
当我们打开一个网页时,我们通常是使用GET方法;当我们填写表格并提交时,我们通常使用POST方法。
第二部分为URL,它通常指向一个资源(服务器上的资源或者其它地方的资源)。像现在这样,就是指向当前服务器的当前目录的test.jpg。
按照HTTP协议的规定,服务器需要根据请求执行一定的操作。
正如我们在服务器程序中看到的,我们的Python程序先检查了request的方法,随后根据URL的不同,来生成不同的response(text_content或者pic_content)。
随后,这个response被发送回给客户端。
使用浏览器实验
为了配合上面的服务器程序,我已经在放置Python程序的文件夹里,保存了一个test.jpg图片文件。
我们在终端运行上面的Python程序,作为服务器端,再打开一个浏览器作为客户端。
(如果有时间,你也完全可以用Python写一个客户端。原理与上面的TCP socket的客户端程序相类似。)
在浏览器的地址栏输入:
(当然,你也可以用令一台电脑,并输入服务器的IP地址)
OK,我已经有了一个用Python实现的,并从socket写起的服务器了。
从终端,我们可以看到,浏览器实际上发出了两个请求。
第一个请求为 (关键信息在起始行,这一个请求的主体为空):

我们的Python程序根据这个请求,发送给服务器text_content的内容。
浏览器接收到text_content之后,发现正文的html文本中有<IMG src="text.jpg" />,知道需要获得text.jpg文件来补充为图片,立即发出了第二个请求:

我们的Python程序分析过起始行之后,发现/test.jpg符合if条件,所以将pic_content发送给客户。
最后,浏览器根据html语言的语法,将html文本和图画以适当的方式显示出来。
探索的方向
1) 在我们上面的服务器程序中,我们用while循环来让服务器一直工作下去。
实际上,我们还可以根据多线程的知识,将while循环中的内容改为多进程或者多线程工作。
2) 我们的服务器程序还不完善,我们还可以让我们的Python程序调用Python的其他功能,以实现更复杂的功能。比如说制作一个时间服务器,让服务器向客户返回日期和时间。你还可以使用Python自带的数据库,来实现一个完整的LAMP服务器。

3) socket包是比较底层的包。Python标准库中还有高层的包,比如SocketServer,SimpleHTTPServer,CGIHTTPServer,cgi。这些都包都是在帮助我们更容易的使用socket。如果你已经了解了socket,那么这些包就很容易明白了。利用这些高层的包,你可以写一个相当成熟的服务器。

4) 在经历了所有的辛苦和麻烦之后,你可能发现,框架是那么的方便,所以决定去使用框架。或者,你已经有了参与到框架开发的热情。

3. windows下python怎么搭建web服务器

python创建一历搜哪个最简漏扒单httpwebserver服务器肢码的方法:stHandlerHandler==BaseHTTPServer.HTTPServerProtocol=HTTP/1.0ifsys.argv[1:]:port=int(sys.argv[1])else:port=8000server_address=(飗.0.0.1',port)Handler.protocol_version=Protocolhttpd=Server(server_address,Handler)print(ServingHTTP)httpd.serve_forever()

4. 用python写个自动SSH登录远程服务器的小工具


开始写代码代码比较长,所以我也放在在Github和码云,地址在文章最底部:1.我们建个模块目录osnssh(Open source noob ssh),然后在下面再建两个目录,一个用吵丛岩来放主程序取名叫bin吧,一个用来保存登录数据(IP, 端口,密码)叫data吧。-osnssh
-bin
-data1.设置程序:添加/删除升御IP,端郑消口,密码. 建立py文件bin/setting.py:?
1
23

#!/usr/bin/env python
#-*-coding:utf-8-*-
import
re, base64, os, sys
path
=
os.path.dirname(os.path.abspath(sys.argv[
0
]))
选项配置管理
__author__ = allen woo
def
add_host_main():
while
1
if
add_host():
break
print
(Again:
5. 求用Python通过websocket协议写的一个服务器

defhandshake(conn):
key=None
data=conn.recv(8192)
ifnotlen(data):
returnFalse
forlineindata.split(' ')[0].split(' ')[1:]:
k,v=line.split(':')
ifk=='Sec-WebSocket-Key':
key=base64.b64encode(hashlib.sha1(v+'258EAFA5-E914-47DA-95CA-C5AB0DC85B11').digest())
ifnotkey:
conn.close()
returnFalse
response='HTTP/1.1101SwitchingProtocols '
'Upgrade:websocket '
'Connection:Upgrade '
'Sec-WebSocket-Accept:'+key+' '
conn.send(response)
returnTrue

6. python爬虫 如何自己用云服务器上搭建代理服务器 并使用requests测试代理

1、简介
使用同一个ip频繁爬取一个网站,久了之后会被该网站的服务器屏蔽。所以这个时候需要使用代理服务器。通过ip欺骗的方式去爬取网站

可以使用http://yum.iqianyue.com.com/proxy中找到很多服务器代理地址

2、应用
# *-*coding:utf-8*-*
from urllib import request
def use_porxy(porxy_addr,url):
porxy = request.ProxyHandler({'http':porxy_addr})
opener = request.build_opener(porxy, request.ProxyHandler)
request.install_opener(opener)
data = request.urlopen(url).read().decode('utf-8')
return data
data = use_porxy("114.115.182.59:128","http://www..com")
print(len(data))

7. python 如何编写代理服务器

frombottleimportrun,route,request,response
fromurllib.requestimporturlopen
@route('<url:re:.*>')
defget_method(url):
data=urlopen(url)
returndata.read()
run(host='0.0.0.0',port=3456,debug=True)

我简单写一个,使用bottle框架,注意不要该ie的代理,使用别的浏览器如firefox代理到

127.0.0.1:3456

8. CentOS+nginx+uwsgi+Python 多站点环境搭建

转自 Xiongpq

http://www.cnblogs.com/xiongpq/p/3381069.html

略有补充(可能出现错误及解决办法)

环境:

CentOS X64 6.4

nginx 1.5.6

Python 2.7.5

正文:

一:安装需要的类库及Python2.7.5

安装必要的开发包

yum groupinstall "Development tools"

yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

CentOS 自带Python2.6.6,但我们可以再安装Python2.7.5:

cd ~

wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2

tar xvf Python-2.7.5.tar.bz2

cd Python-2.7.5

./configure --prefix=/usr/local

make && make altinstall

安装完毕后,可是使用”python2.7”命令进入python2.7的环境。

二:安装Python包管理

easy_install包 https://pypi.python.org/pypi/distribute

方便安装Python的开发包

cd ~

wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz

tar xf distribute-0.6.49.tar.gz

cd distribute-0.6.49python2.7 setup.py install

easy_install --version

红色部分必须是“python2.7”,否则将安装到默认的2.6环境内。

pip包 https://pypi.python.org/pypi/pip

安装pip的好处是可以pip list、pip uninstall 管理Python包, easy_install没有这个功能,只有uninstall

easy_install pip

pip --version

三:安装uwsgi

uwsgi: https://pypi.python.org/pypi/uWSGI

uwsgi参数详解: http://uwsgi-docs.readthedocs.org/en/latest/Options.html

pip install uwsgi

uwsgi --version

测试uwsgi是否正常:

新建test.py文件,内容如下:

def application(env, start_response):

start_response('200 OK', [('Content-Type','text/html')])

return "Hello World"

然后在终端运行:

uwsgi --http :8001 --wsgi-file test.py

在浏览器内输入: http://你购买的云主机公网ip:8001 ,看是否有“Hello World”输出,若没有输出,请检查你的安装过程。

四:安装django

pip install django

测试django是否正常,运行:

django-admin.py startproject demosite

cd demositepython2.7 manage.py runserver 0.0.0.0:8002

在浏览器内输入: http://1 你购买的云主机公网 :8002,检查django是否运行正常。

五:安装nginx

cd ~

wget http://nginx.org/download/nginx-1.5.6.tar.gz

tar xf nginx-1.5.6.tar.gz

cd nginx-1.5.6

./configure --prefix=/usr/local/nginx-1.5.6 \

--with-http_stub_status_mole \

--with-http_gzip_static_mole

make && make install

安装Nginx时报错

错误提示:

./configure: error: the HTTP rewrite mole requires the PCRE library.

安装pcre-devel与openssl-devel解决问题

yum -y install pcre-devel openssl openssl-devel

./configure --prefix=/usr/local/nginx

make

make install

六:配置uwsgi

uwsgi支持ini、xml等多种配置方式,但个人感觉ini更方便:

在/ect/目录下新建uwsgi9090.ini,添加如下配置:

[uwsgi]

socket =

master = true         //主进程

vhost = true          //多站模式

no-stie = true        //多站模式时不设置入口模块和文件

workers = 2           //子进程数

reload-mercy = 10

vacuum = true         //退出、重启时清理文件

max-requests = 1000

limit-as = 512

buffer-sizi = 30000

pidfile = /var/run/uwsgi9090.pid    //pid文件,用于下面的脚本启动、停止该进程

daemonize = /website/uwsgi9090.log

设置uwsgi开机启动,在/etc/init.d/目录下新建uwsgi9090文件,内容如下:

uwsgi9090

#! /bin/sh

# chkconfig: 2345 55 25

# Description: Startup script for uwsgi webserver on Debian. Place in /etc/init.d and

# run 'update-rc.d -f uwsgi defaults', or use the appropriate command on your

# distro. For CentOS/Redhat run: 'chkconfig --add uwsgi'

### BEGIN INIT INFO

# Provides:          uwsgi

# Required-Start:    $all

# Required-Stop:     $all

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: starts the uwsgi web server

# Description:       starts uwsgi using start-stop-daemon

### END INIT INFO

# Author:   licess

# website:  http://lnmp.org

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DESC="uwsgi daemon"

NAME=uwsgi9090

DAEMON=/usr/local/bin/uwsgi

CONFIGFILE=/etc/$NAME.ini

PIDFILE=/var/run/$NAME.pid

SCRIPTNAME=/etc/init.d/$NAME

set -e

[ -x "$DAEMON" ] || exit 0

do_start() {

$DAEMON $CONFIGFILE || echo -n "uwsgi already running"

}

do_stop() {

$DAEMON --stop $PIDFILE || echo -n "uwsgi not running"

rm -f $PIDFILE

echo "$DAEMON STOPED."

}

do_reload() {

$DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload"

}

do_status() {

ps aux|grep $DAEMON

}

case "$1" in

status)

echo -en "Status $NAME: \n"

do_status

;;

start)

echo -en "Starting $NAME: \n"

do_start

;;

stop)

echo -en "Stopping $NAME: \n"

do_stop

;;

reload|graceful)

echo -en "Reloading $NAME: \n"

do_reload

;;

*)

echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2

exit 3

;;

esac

exit 0

uwsgi9090

然后在终端执行:

-- 添加服务

chkconfig --add uwsgi9090

-- 设置开机启动

chkconfig uwsgi9090 on

七:设置nginx

找到nginx的安装目录/usr/local/nginx,打开conf/nginx.conf文件,修改server配置

server {

listen       80;

server_name  localhost;

location / {

include  uwsgi_params;

uwsgi_pass  ;              //必须和uwsgi中的设置一致

index  index.html index.htm;

client_max_body_size 35m;

}

}

注意 :安装django这步中startproject的demosite路径,需要和nginx.conf中 uwsgi_param UWSGI_CHDIR /demosite;对应上。

设置nginx开机启动,在/etc/init.d/目录下新建nginx文件,内容如下:

nginx

#!/bin/sh

#

# nginx - this script starts and stops the nginx daemon

#

# chkconfig:   - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \

#               proxy and IMAP/POP3 proxy server

# processname: nginx

# config:      /usr/local/nginx/conf/nginx.conf

# pidfile:     /var/run/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/opt/nginx-1.5.6/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/opt/nginx-1.5.6/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {

[ -x $nginx ] || exit 5

[ -f $NGINX_CONF_FILE ] || exit 6

echo -n $"Starting $prog: "

daemon $nginx -c $NGINX_CONF_FILE

retval=$?

echo

[ $retval -eq 0 ] && touch $lockfile

return $retval

}

stop() {

echo -n $"Stopping $prog: "

killproc $prog -QUIT

retval=$?

echo

[ $retval -eq 0 ] && rm -f $lockfile

return $retval

}

restart() {

configtest || return $?

stop

sleep 1

start

}

reload() {

configtest || return $?

echo -n $"Reloading $prog: "

killproc $nginx -HUP

RETVAL=$?

echo

}

force_reload() {

restart

}

configtest() {

$nginx -t -c $NGINX_CONF_FILE

}

rh_status() {

status $prog

}

rh_status_q() {

rh_status >/dev/null 2>&1

}

case "$1" in

start)

rh_status_q && exit 0

$1

;;

stop)

rh_status_q || exit 0

$1

;;

restart|configtest)

$1

;;

reload)

rh_status_q || exit 7

$1

;;

force-reload)

force_reload

;;

status)

rh_status

;;

condrestart|try-restart)

rh_status_q || exit 0

;;

*)

echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

exit 2

esac

nginx

然后在终端执行:

-- 添加服务

chkconfig --add nginx

-- 设置开机启动

chkconfig nginx on

八:测试

OK,一切配置完毕,在终端运行

service uwsgi9090 start

service nginx start

错误1:

[root@VM_23_251_centos nginx-1.5.6]# service uwsgi9090 start

env: /etc/init.d/uwsgi9090: Permission denied

[root@VM_23_251_centos nginx-1.5.6]# service nginx start

env: /etc/init.d/nginx: Permission denied

解决办法1:把可执行勾选上

错误2:

[root@VM_23_251_centos ~]# sudo service nginx start

env: /etc/init.d/nginx: No such file or directory

解决办法1:

Be careful what text editors you use on your local Windows computer. Some create Windows-style line endings (\r\n, CR-LF), which cause problems like this on Unix-like systems such as Linux or Mac OS X.

If you use such an editor, adjust its settings so that it creates files with Unix-style line endings. If the editor has no such setting, you should not be using it at all.

文本格式由windows 改为unix版

错误3:

*** WARNING: Can't find section "uwsgi" in INI configuration file /etc/uwsgi9090.ini ***

解决办法3:

在浏览器输入: http:// 云主机公网ip,恭喜你可以看到django的“It work”了~

九:多站配置

我采用运行多个uwsgi服务的方法来实现多个站点。

重复第六步,创建uwsgi9091.ini,并相应修改文件中的

socket = 127.0.0.1:9091

pidfile = /var/run/uwsgi9091.pid

daemonize = /website/uwsgi9091.log

并创建服务uwsgi9091,设置开机启动。

然后修改nginx的配置文件为:

nginx

然后我们就可以通过 http://127.0.0.1:1300 来访问新的网站了。

十:其他配置

防火墙设置

CentOS默认关闭外部对80、3306等端口的访问,所以要在其他计算机访问这台服务器,就必须修改防火墙配置,打开/etc/sysconfig/iptables

在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT

然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

service iptables restart

安装Mysqldb

yum -y install mysql-develeasy_install-2.7 MySQL-python

注意红色部分,easy_install-2.7,否则它将默认安装到Python2.6环境内。

------------------------------------------------------------------------------------------------------------------

2014年12月02日添加:

CentOS 7中默认使用Firewalld做防火墙,所以修改iptables后,在重启系统后,根本不管用。

Firewalld中添加端口方法如下:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

9. python程序怎么部署到云服务器

你需要登录云服务器管理控制台,记录被我打马赛克位置的公网ip。

登录服务器
windows推荐下putty进行连接远程服务器,linux和macos不需要那么麻烦,ssl就行了。

putty
在下图的host name中输入你的公网IP,点击open。

putty界面
输入密码,看不见输入不要慌,linux就是这样保护安全的。

Paste_Image.png
登录成功界面见下图,然后想怎么操作就怎么操作了。

登陆成功界面
运行我的python文件
推荐FileZilla进行文件传输(不具体说明了),我上传了我的flask网站项目

我的项目
记住服务器同时有Python2和Python3,

python
运行的时候记得使用合适的版本,我用的是虚拟环境(自行网络如何创建虚拟环境)
在运行python之前先安装一个screen,他可以将一个程序在后台运行
sudo apt-get install screen

运行python文件,成功后按下ctrl+A和ctrl+D可以隐藏。隐藏后可以输入screen -r 恢复。

运行成功

10. 如何用Python在本地搭建一个简单的流媒体服务器

#!/usr/bin/envpythonfromflaskimportFlask,render_template,

app=Flask(__name__)@app.route('/')defindex():
returnrender_template('index.html')defgen(camera):
whileTrue:
frame=camera.get_frame()yield(b'--frame '
b'Content-Type:image/jpeg '+frame+b' ')@app.route('/video_feed')defvideo_feed():
returnResponse(gen(Camera()),
mimetype='multipart/x-mixed-replace;boundary=frame')if__name__=='__main__':
app.run(host='0.0.0.0',debug=True)

网页链接

热点内容
压缩空气有啥 发布:2025-02-08 14:26:01 浏览:702
python输入一个数 发布:2025-02-08 14:26:00 浏览:448
普惠e卡最初密码是多少 发布:2025-02-08 14:21:57 浏览:474
亚索后q脚本 发布:2025-02-08 14:21:06 浏览:324
官方源码 发布:2025-02-08 14:09:25 浏览:437
python过滤器 发布:2025-02-08 14:05:06 浏览:617
火山币算法 发布:2025-02-08 14:04:49 浏览:669
jffs2解压 发布:2025-02-08 13:55:15 浏览:388
如何向服务器发送大数据包 发布:2025-02-08 13:55:12 浏览:662
服务器pop地址是什么 发布:2025-02-08 13:39:21 浏览:386