twisted 3 webserver

静态文件的web服务器

from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.static import File

resource = File(‘C:\\‘)
factory  = Site(resource)
reactor.listenTCP(8000, factory)
reactor.run()
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.static import File

root = File("D:\\downloaed_images")
root.putChild("logs", File("D:\\work_journal"))

factory = Site(root)
reactor.listenTCP(8000, factory)

reactor.run()

呈现动态内容

from twisted.internet import reactor
from twisted.web.resource import Resource
from twisted.web.server import Site

import time

class ClockPage(Resource):
    isLeaf = True
    def render_GET(self, request):
        return "The local time is %s" % (time.ctime(),)

resource = ClockPage()
factory = Site(resource)
reactor.listenTCP(8000, factory)

reactor.run()

日历服务器

from twisted.internet import reactor
from twisted.web.resource import Resource,NoResource
from twisted.web.server import Site

from calendar import calendar

class YearPage(Resource):
    def __init__(self, year):
        Resource.__init__(self)
        self.year = year

    def render_GET(self, request):
        return "<html><body><pre>%s</pre></body></html>" % (calendar(self.year),)

class CalendarHome(Resource):
    def getChild(self, path, request):
        if path == ‘‘:
            return self
        if path.isdigit():
            return YearPage(int(path))
        else:
            return NoResource()

root = CalendarHome()
factory = Site(root)

reactor.listenTCP(8000, factory)
reactor.run()
时间: 2024-08-13 15:18:44

twisted 3 webserver的相关文章

Python Twisted网络编程框架与异步编程入门教程

原作出处:twisted-intro-cn 作者:Dave 译者:杨晓伟 luocheng likebeta 转载声明:版权归原作出处所有,转载只为让更多人看到这部优秀作品合集,如果侵权,请留言告知 感 谢:感谢 杨晓伟 luocheng likebeta 为国内Twisted Coder做的里程碑级贡献 其 它:能访问到Github的童鞋,请访问出处链接.因为出处排版相当棒! 1.Twisted理论基础 2.异步编程初探与reactor模式 3.初次认识Twisted 4.由twisted支持

深入学习twisted(基础)二

上一篇对twisted大致做了介绍以及一些基本的概念. 这一篇从一个python epoll/soket聊天程序开始. 我们要实现的很简单,就是利用epoll实现一个服务端/客户端间的聊天,服务端和客户端可以接收消息的同时,可以利用raw_input,在命令行输入. 我们将socket fd设置为非阻塞的,但是我们知道标准的输入输出io都是阻塞的,我们就开辟一个线程专门处理输入,在主线程进行消息的收发.这样当我们没有输入的时候,raw_input就会阻塞,由我们的主线程进行监听和处理.代码如下:

twisted 6 大话deferred

http://twistedsphinx.funsize.net/projects/core/howto/deferredindepth.html 1. 没有等待,就没有事件.设备的"监听"功能是一切事件的来源. 一句话道明deferred的精髓 Normally, a function would create a deferred and hand it back to you when you request an operation that needs to wait for

什么是WEBserver? 经常使用的WEBserver有哪些?

一.什么是WEBserver Webserver能够解析HTTP协议.当Webserver接收到一个HTTP请求,会返回一个HTTP响应,比如送回一个HTML页面.为了处理一个请求Webserver能够响应一个静态页面或图片,进行页面跳转或者把动态响应的产生托付给一些其他的程序比如CGI脚本,JSP脚本,servlets,ASP脚本,server端JavaScript,或者一些其他的server端技术.不管它们(译者注:脚本)的目的怎样,这些server端的程序通常产生一个HTML的响应来让浏览

python 网络框架twisted基础学习及详细讲解

twisted网络框架的三个基础模块:Protocol, ProtocolFactory, Transport.这三个模块是构成twisted服务器端与客户端程序的基本. Protocol:Protocol对象实现协议内容,即通信的内容协议ProtocolFactory: 是工厂模式的体现,在这里面生成协议Transport: 是用来收发数据,服务器端与客户端的数据收发与处理都是基于这个模块 在windows中安装twisted需要先安装pywin32,自己去下载下就行.随后pip instal

python_如何通过twisted实现数据库异步插入?

如何通过twisted实现数据库异步插入? 1. 导入adbapi 2. 生成数据库连接池 3. 执行数据数据库插入操作 4. 打印错误信息,并排错 #!/usr/bin/python3 import pymysql from twisted.enterprise import adbapi from twisted.internet import reactor def go_insert(cursor, sql): # 对数据库进行插入操作,并不需要commit,twisted会自动帮我co

PHP与webserver【简书看到的】

很久以前,人们造出来一个机器人,它的英文名字叫web server,中文名叫网页服务器.(为了简写,下文称web server为server) server的工作很简单,就是做内容的分发. 初期的sever功能很简单,只能处理静态请求,当客户端请求/index.html的时候,server去文件系统里面找到对应的index.html文件,然后返回给客户端,这个时期的server就像一个仓库管理员,别人要啥,他给啥. 可是这样的机器人很明显不能满足人们的需求,因为sever机器人只能处理静态请求,

Python Twisted架构英文版

原作出处:twisted-intro 作者:Dave 转载声明:版权归原作出处所有,转载只为让更多人看到这部优秀作品合集,如果侵权,请留言告知 Twisted Introduction This multi-part series introduces Asynchronous Programming and the Twisted networking framework. In Which We Begin at the Beginning Slow Poetry and the Apoca

flask twisted 结合方案

from flask import Flask, render_template, g app = Flask(__name__) @app.route("/") def index(): return render_template("index.html") # run in under twisted through wsgi from twisted.web.wsgi import WSGIResource from twisted.web.server i