jon*_*ham 4 python chat http tornado web
我正在使用Ubuntu并有一个名为"webchat"的目录,在这个目录下有4个文件:webchat.py,webchat.css,webchat.html,webchat.js.
使用Tornado创建HTTP服务器时,我将根("/")映射到我的python代码:'webchat.py'如下:
import os,sys
import tornado.ioloop
import tornado.web
import tornado.httpserver
#http server for webchat
class webchat(tornado.web.RequestHandler):
def get(self):
self.write("Hello, chatter! [GET]")
def post(self):
self.write("Hello, chatter! [POST]")
#create http server
Handlers = [(r"/",webchat)]
App_Settings = {"debug":True}
HTTP_Server = tornado.web.Application(Handlers,**App_Settings)
#run http server
HTTP_Server.listen(9999)
tornado.ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)
访问http:// localhost:9999将引导我进入"网络聊天"处理程序(类网络聊天).但是,我想使用'webchat.py'访问同一目录中的其他文件,这些文件是webchat.css,webchat.html和webchat.js.
这个URL给了我404:http:// localhost:9999/webchat.html.这个问题的任何可能解决方案?
lep*_*ure 12
Tornado有一个默认的静态文件处理程序,但它将url映射到/ static /,如果你必须访问/static/webchat.css中的静态文件,它会没问题吗?
如果您对此感到满意,我强烈建议您以这种方式处理静态文件.
如果您希望静态文件位于根路径,请查看web.StaticFileHandler.
万一你错过了,这是一个例子
(r"/static/(.*)", web.StaticFileHandler, {"path": "/var/www"}),
Run Code Online (Sandbox Code Playgroud)
BTW,File_Name并且Handlers不被认为是在Python良好的变量名.
仅包含文件名和相对路径的简单文件请求的解决方案:
(1)给处理程序URL模式一个wildcat:
Handlers = [(r"/(.*)",webchat)]
Run Code Online (Sandbox Code Playgroud)
(2)将(.*)表示的参数传递给方法'get'和'post':
def get(self,File_Name):
File = open(File_Name,"r")
self.write(File.read())
File.close()
def post(self,File_Name):
File = open(File_Name,"r")
self.write(File.read())
File.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7644 次 |
| 最近记录: |