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
分享到:
相关推荐
标题中的“Twisted-19.2.1-cp37-cp37m-win_amd64”和“Twisted-19.2.0-cp27-cp27m-win_amd64”指的是Python的一个著名开源库——Twisted的两个不同版本。Twisted是一个用于网络编程的事件驱动的网络引擎,它为Python...
用于安装相关程序需使用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库 所属语言:Python 资源全名:twisted_iocpsupport-1.0.2rc0-cp38-cp38-win_amd64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
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"是一款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,专为Python 2.7版本设计,并且是针对Windows AMD64(即64位)系统的。这个库通常以....
我博客文章有,需要可以百度COCO56,Twisted-18.7.0-cp37-cp37m-win_amd64.whl https://blog.csdn.net/COCO56/article/details/82145425
资源分类:Python库 所属语言:Python 资源全名:twisted-csp-0.1.5.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Twisted- python3.7 Twisted-19.2.1-cp37-cp37m-win_amd64.whl
anaconda python3.7 twisted安装包Twisted-19.7.0-cp37-cp37m-win_amd64.whl
Twisted是用Python实现的基于事件驱动的网络引擎框架。Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。Twisted的作者试图在当时现有的环境下...
在这个场景中,`twisted.rar` 和 `Twisted-17.9.0.dist-info.rar` 是针对Python的Twisted库的压缩包文件,它是Scrapy框架的重要组成部分。 Twisted是一个异步网络编程库,它为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.whl 官方文件 官网下载太慢了" 指出压缩包内的主要文件是一个名为"Twisted-19.2.1-cp37-cp37m-win_amd64.whl"的Wheel文件,这是Python的一种二进制分发格式,方便...
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-...
python爬虫scrapy模块安装之前的必备模块Twisted-17.1.0-cp35-cp35m-win32.whl,此版本对应的是Twisted-17.1.0、python3.5、win32位 系统。
例如,如果你的Python环境是3.7且为64位系统,你可能需要下载名为`twisted-22.1.0-cp37-cp37m-win_amd64.whl`和`scrapy-2.7.1-cp37-cp37m-win_amd64.whl`的文件。然后,将这两个文件解压缩到Python安装目录的site-...
Windows系统下,使用Python3.6的pip工具离线安装twisted会发生失败,因为它需要在线安装部分依赖包,该资源包含twisted以及它相关的依赖包,使用命名pip install XXXXXXXXX(依赖包的名称,每个之间用空格隔开)