tornado 学习笔记

import  tornado.ioloop
import  tornado.web
class MainHanlwe(tornado.web.RequestHandler):
    def get(self):
        login_user=self.get_secure_cookie(‘login_user‘,None)
        if login_user:
            self.write(login_user)
        else:
            self.redirect(‘/login‘)
class LoginHanmder(tornado.web.RequestHandler):
    def get(self):
        # self.current_user()
        self.render(‘login.html‘,**{‘statue‘:‘‘})
    def post(self,*args,**kwargs):
        username=self.get_argument(‘name‘)
        password=self.get_argument(‘pwd‘)
        print(username,password)
        if username ==‘liwanlei‘ and password ==‘123‘:
            self.set_secure_cookie(‘login_user‘,‘leizi‘)
            self.redirect(‘/index‘)
        else:
            self.render(‘login.html‘,**{‘status‘:‘用户名或者密码错误‘})
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render(‘shangchuan.html‘)
    def post(self,*args,**kwargs):
        file=self.request.files[‘fff‘]
        for mes in file:
            file_name = mes[‘filename‘]
            with open(file_name, ‘wb‘) as up:
                up.write(mes[‘body‘])
class Maiandler(tornado.web.RequestHandler):
    def get(self):
        self.render(‘yan.html‘)
    def post(self, *args, **kwargs):
        obj = MainForm()
        result = obj.check_valid(self)
        self.write(‘ok‘)
setting={
    ‘template_path‘:‘template‘,
    ‘static_path‘: ‘static‘,
    ‘static_url_prefix‘: ‘/static/‘,
    ‘cookie_secret‘: ‘aiuasdhflashjdfoiuashdfiuh‘,
    ‘xsrf_cookie‘:True
}
application=tornado.web.Application([
    (r"/index", Maiandler),
    (r"/login", LoginHanmder),
],**setting)
if __name__==‘__main__‘:
    application.listen(5000)
    tornado.ioloop.IOLoop.instance().start()
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>上传文件</title>
</head>
<body>
    <form id="my_form" name="form" action="/index" method="POST"  enctype="multipart/form-data" >
        <input name="fff" id="my_file"  type="file" />
        <input type="submit" value="提交"  />
    </form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{%if status %}
{{status}}
{% end %}
<form action="" method="post">
    <input type="text" name="name">
    <input type="password" name="pwd">
    <input type="submit" value="登录">
</form>
</body>
</html>

  

时间: 2024-12-15 19:47:43

tornado 学习笔记的相关文章

python框架之 Tornado 学习笔记(一)

tornado 一个简单的服务器的例子: 首先,我们需要安装 tornado ,安装比较简单: pip  install tornado 测试安装是否成功,可以打开python 终端,输入: import     tornado.httpserver 若无报错,则证明安装成功 接下来就可以写一个简单的服务器了,如下: import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web

Tornado 学习笔记 Tornado基础 1

这是根据官方文档学习后总结的笔记: Tornado基础 Tornado是一套web框架和异步网络功能库,使用非阻塞是IO,可支持数万个活动连接.支持长活跃连接,支持 long polling长连接,支持WebSockets. A web framework (including RequestHandler which is subclassed to create web applications, and various supporting classes). Client- and se

Tornado学习笔记(一)

最近开始用Tornado做开发了,究其原因,主要是Tornado基于Python,一来代码量少开发速度快,二来采用epoll方式,能够承载的并发量很高.在我的i5台式机上用ab测试,不连接数据库的情况下,单用get生成页面,大概平均的并发量在7900左右.这比php或者java能够承载并发量都高很多很多.三来Python代码可维护性相对来说比php好很多,语法结构清晰.四来,tornado的框架设计的很黄很暴力,以HTTP请求方式作为方法名称,通常情况下,用户写一个页面只需要有get和post两

Tornado学习笔记(三)

记录一些Tornado中的常用知识. 获取远端IP,直连tornado,用self.request.remote_ip,如果是走nginx反向代理方式,需要在nginx中的Server/Location配置如下                 proxy_pass http://data.xxx.com;                 #proxy_redirect off;                 proxy_set_header Host $host;               

Tornado 学习笔记3 tornado started

这个笔记是看Introduction.to.Tornado 一书时总结的. Tornado适合创建可灵活扩展的社区程序.实时的分析引擎,以及REST风格的API.由Bret Taylor等人为FriendFeed开发,后被Facebook收购. 多数的社区程序实时更新显示新消息,状态更改以及用户提示,需要客户端一直保持连接用来等待服务器的响应.使用线程模式的服务器如apache及其comet实现很容易因为达到线程池最大值,而无法接受新的请求. 相对于使用线程模式管理缓冲池的方式,Tornado使

tornado学习笔记19 Tornado框架分析

19.1 Http服务器请求处理流程图   (1) 调用HTTPServer的bind方法,绑定Socket的监听端口号: (2) 调用HTTPServer的listen方法,初始化一个listen socket对象: (3) 调用add_hander方法,将初始化的listen socket对象添加至IOLoop池中,这时的socket就开始监听来自客户端的请求. (4) 客户端发送HTTP请求: (5) listen socket监听到客户端的请求,调用listen socket的accep

tornado学习笔记(四)

4 Databases 1 pymongo 2 simple word dictionary 3 Burts books read from database editing and adding books 4 Databases 1 pymongo pymongo是python用来连接MongoDB数据库的一个库,可以pip安装:pip install pymongo 命令行mongod运行mongodb服务器后,可以使用pymongo来进行连接 >>> import pymongo

tornado 学习笔记7 RequestHandler功能分析

       在第5部分讲到,构建一个tornado网站,必须包含一个或者多个handler,这些handler是RequestHandler的子类.每个请求都会被映射到handler中进行处理,处理后再将结果返回给客户端.所以,可以看到hanlder作为客户端请求跟业务服务逻辑间的桥梁,如果拿MVC的模式来类比的话,每个handler就相当于MVC中的Controller.        RequestHanlder作为所有hanlder的父类,我们看看他有哪些方法与接口,子类需要怎样继承?

tornado学习笔记(三)

3 Extending Templates 1 blocks and substitutions 2 autoescaping 3 UI modules basic module usage modules in depth embedding javascript and css 3 Extending Templates 1 blocks and substitutions 模板可以继承于基类模板,这样可以重复使用很多模块减少代码量 如在index.html中继承main.html,在ind