`
sillycat
  • 浏览: 2539876 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python Lover(9)Twisted Basic - session and RESTful

 
阅读更多
Python Lover(9)Twisted Basic - session and RESTful

1. WSGI
http://twistedmatrix.com/documents/current/web/howto/web-in-60/wsgi.html

2. HTTP Authentication
http://twistedmatrix.com/documents/current/web/howto/web-in-60/http-auth.html

3. Session
http://twistedmatrix.com/documents/current/web/howto/web-in-60/session-basics.html

from twisted.web.resource import Resource

class ShowSession(Resource):
    def render_GET(self, request):
        return 'Your session id is: ' + request.getSession().uid

class ExpireSession(Resource):
    def render_GET(self, request):
        request.getSession().expire()
        return 'Your session has been expired.'

resource = ShowSession()
resource.putChild("expire", ExpireSession())

Start the Service
> twistd -n web --path . --logfile ./RestAPI.access.log

Visit the page to get the session info
http://localhost:8080/RestAPI.rpy

Visit the expire the session
http://localhost:8080/RestAPI.rpy/expire

Store Object in the Session
http://twistedmatrix.com/documents/current/web/howto/web-in-60/session-store.html

Session Endings
http://twistedmatrix.com/documents/current/web/howto/web-in-60/session-endings.html

4. Restful
> git clone https://github.com/iancmcc/txrestapi.git

> python setup.py install

This may works in project sillycat-prest

One Main File RestAPI.py to handle all the traffic
from twisted.web.resource import Resource
from twisted.web.server import Site
from twisted.internet import reactor

from BookAPI import BookResource

bookResource = BookResource()

rootResource = Resource()
rootResource.putChild("book", bookResource)

site = Site(rootResource, timeout=None)
reactor.listenTCP(8888,site)
reactor.run()

One Module Class BookAPI to handle the traffic in that module
from txrestapi.methods import GET, POST, PUT, ALL, DELETE
from txrestapi.resource import APIResource

class BookResource(APIResource):
    @GET('^/book/(?P<id>[^/]+)')
    def getBook(self, request, id):
        return 'Pick up one book with id %s' % id

    @GET('^/book')
    def books(self,request):
        return "books"

    @PUT('^/book/(?P<id>[^/]+)')
    def updateBook(self,request):
        return "Update book with id %s" % id

    @POST('^/book/(?P<id>[^/]+)')
    def saveBook(self, request, id):
        return "Save book with id %s" % id

    @DELETE('^/book/(?P<id>[^/]+)')
    def deleteBook(self,request,id):
        return "Delete book with id %s" % id

    @ALL('^/')
    def default_view(self, request):
        return "I fail to match other URLs."

The visits on the URL will work
http://localhost:8888/book/19343

References:
http://twistedmatrix.com/documents/current/web/howto/web-in-60/

restful
http://jacek99.github.io/corepost/doc/build/html/index.html
https://github.com/iancmcc/txrestapi
https://pypi.python.org/pypi/txrestapi

API document
http://twistedmatrix.com/documents/current/api/index.html

project structure
http://stackoverflow.com/questions/193161/what-is-the-best-project-structure-for-a-python-application
分享到:
评论

相关推荐

    Python工具资源:Twisted-19.2.1-cp37-cp37m-win_amd64;Twisted-19.2.0-cp37-cp37m-win_amd

    标题中的“Twisted-19.2.1-cp37-cp37m-win_amd64”和“Twisted-19.2.0-cp27-cp27m-win_amd64”指的是Python的一个著名开源库——Twisted的两个不同版本。Twisted是一个用于网络编程的事件驱动的网络引擎,它为Python...

    Twisted-18.7.0-python3.6-3.7 32位和64位

    用于安装相关程序需使用Twisted的whl文件,适用于python3.6和3.7,32位和64位的系统都有,共4个文件打包一起,使用方法: 1、pip install wheel ...3、pip install Twisted-18.7.0-cp36-cp36m-win_amd64.whl

    Python库 | twisted_iocpsupport-1.0.2rc0-cp38-cp38-win_amd64.whl

    资源分类:Python库 所属语言:Python 资源全名:twisted_iocpsupport-1.0.2rc0-cp38-cp38-win_amd64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Twisted-17.9.0-cp35-cp35m-win_amd64.whl

    Twisted python3.5 Twisted python3.5 Twisted python3.5 Twisted python3.5 Twisted python3.5 Twisted-17.9.0-cp35-cp35m-win_amd64.whl Twisted-17.9.0-cp35-cp35m-win_amd64.whl Twisted-17.9.0-cp35-cp35m-win_...

    Twisted-20.3.0-cp39-cp39-win_amd64.whl

    标题中的"Twisted-20.3.0-cp39-cp39-win_amd64.whl"是一款Python库Twisted的特定版本,针对Python 3.9编译的Windows 64位平台的wheel文件。在Python中,wheel是一种预编译的二进制包格式,它使得安装过程更快捷,...

    Python库 | Twisted-16.4.1-cp27-none-win_amd64.whl

    标题中的"Python库 | Twisted-16.4.1-cp27-none-win_amd64.whl"指的是一个特定版本的Python第三方库——Twisted,版本号为16.4.1,专为Python 2.7版本设计,并且是针对Windows AMD64(即64位)系统的。这个库通常以....

    Python3.7 Twisted-18.7.0-cp37-cp37m-win_amd64.whl

    我博客文章有,需要可以百度COCO56,Twisted-18.7.0-cp37-cp37m-win_amd64.whl https://blog.csdn.net/COCO56/article/details/82145425

    Python库 | twisted-csp-0.1.5.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:twisted-csp-0.1.5.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Twisted-19.2.1-cp37-cp37m-win_amd64.whl

    Twisted- python3.7 Twisted-19.2.1-cp37-cp37m-win_amd64.whl

    Twisted-19.7.0-cp37-cp37m-win_amd64.whl

    anaconda python3.7 twisted安装包Twisted-19.7.0-cp37-cp37m-win_amd64.whl

    Python Twisted-22.10.0-py3-none-any

    Twisted是用Python实现的基于事件驱动的网络引擎框架。Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。Twisted的作者试图在当时现有的环境下...

    Python安装scrapy框架的twisted文件(twisted.rar,Twisted-17.9.0.dist-info.rar)

    在这个场景中,`twisted.rar` 和 `Twisted-17.9.0.dist-info.rar` 是针对Python的Twisted库的压缩包文件,它是Scrapy框架的重要组成部分。 Twisted是一个异步网络编程库,它为Python提供了一个事件驱动的网络编程...

    Twisted-18.9.0-cp36-cp36m-win32.whl, Microsoft Visual C++ 14.0集成python用包

    解决Python3.6中安装y一些包时出现错误:error: Microsoft Visual C++ 14.0 is required....按照提示需要安装C++14.0的一个库,但此库总的有很...在包的放置路径下,执行pip install Twisted-18.9.0-cp36-cp36m-win32.whl

    Twisted-19.2.1-cp37-cp37m-win_amd64(官方文件).zip

    描述中的 "Twisted-19.2.1-cp37-cp37m-win_amd64.whl 官方文件 官网下载太慢了" 指出压缩包内的主要文件是一个名为"Twisted-19.2.1-cp37-cp37m-win_amd64.whl"的Wheel文件,这是Python的一种二进制分发格式,方便...

    Twisted-17.5.0-cp36-cp36m-win32.whl

    python3.6 爬虫 window 直接命令行安装 Twisted-17.5.0-cp36-cp36m-win32.whl python3.6 爬虫 window 直接命令行安装 Twisted-17.5.0-cp36-cp36m-win32.whl python3.6 爬虫 window 直接命令行安装 Twisted-17.5.0-...

    Twisted-17.1.0-cp35-cp35m-win32.whl

    python爬虫scrapy模块安装之前的必备模块Twisted-17.1.0-cp35-cp35m-win32.whl,此版本对应的是Twisted-17.1.0、python3.5、win32位 系统。

    python包twisted

    例如,如果你的Python环境是3.7且为64位系统,你可能需要下载名为`twisted-22.1.0-cp37-cp37m-win_amd64.whl`和`scrapy-2.7.1-cp37-cp37m-win_amd64.whl`的文件。然后,将这两个文件解压缩到Python安装目录的site-...

    Python3.6下安装twisted所需依赖包-win

    Windows系统下,使用Python3.6的pip工具离线安装twisted会发生失败,因为它需要在线安装部分依赖包,该资源包含twisted以及它相关的依赖包,使用命名pip install XXXXXXXXX(依赖包的名称,每个之间用空格隔开)

Global site tag (gtag.js) - Google Analytics