• 潭州课堂25班:Ph201805201 tornado 项目 第一课 项目介绍和创建 (课堂笔记)


    tornado 相关说明 

    ,

     查找 python3 的路径:

    binbin@abc:~$ which python3
    /usr/bin/python3

    创建虚拟环境 :

    创建工程;

     用 pycharm 连接:找到这个解释器

    设置一下服务顺文件存放目录:

    运行 hello world 

    # -*- coding: utf-8 -*-
    # 斌彬电脑
    # @Time : 2019/2/19 0019  下午 1:22
    
    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write('Hello,world')
    
    
    def make_app():
        return tornado.web.Application({
            (r'/', MainHandler),
        })
    
    if __name__ == '__main__':
        app = make_app()
        app.listen(8001)
        tornado.ioloop.IOLoop.current().start()
    

      

    保存,自动重启

    # -*- coding: utf-8 -*-
    # 斌彬电脑
    # @Time : 2019/2/19 0019  下午 1:22
    
    import tornado.ioloop
    import tornado.web
    import tornado.options
    from tornado.options import define,options
    
    define('port', default='8001', help='Linstening port', type=int)
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write('Hello,world')
    
    
    # 重写 Application
    class Application(tornado.web.Application):
        def __init__(self):
            handlers = [
                (r'/', MainHandler),
            ]
            settings = dict(
                debug = True
            )
         # 继承父类 super().__init__(handlers, **settings) application = Application() if __name__ == '__main__': tornado.options.parse_command_line() # 处理端口 application.listen(options.port) print(options.port) tornado.ioloop.IOLoop.current().start()

      

     创建三个页面,放在 模板文件下

    在模板下创建 base 模板

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}Tonato title{% end %} </title>
    </head>
    <body>
    {% block content %}Body of base{% end %}
    </body>
    </html>

    模板文件下创建三个 html 文件,继承 base.html

    {% extends 'base.html' %}
    {% block title %}PostHandler{% end %}

    {% block content %}
    <h3>单个图片详情页面,第{{ post_id }}页</h3>
    {% end %}
    {% extends 'base.html' %}
    {% block title %}ExploreHandler{% end %}
    
    {% block content %}
    <h3>发现或最近上传的图片页面</h3>
    {% end %}
    {% extends 'base.html' %}
    {% block title %}index{% end %}
    
    {% block content %}
    <h3>这是首页</h3>
    {% end %}

    app.py 文件

    # -*- coding: utf-8 -*-
    # 斌彬电脑
    # @Time : 2019/2/19 0019  下午 1:22
    
    import tornado.ioloop
    import tornado.web
    import tornado.options
    from tornado.options import define,options
    
    define('port', default='8001', help='Linstening port', type=int)
    
    # 第一个页面
    class indexHandler(tornado.web.RequestHandler):
        '''
        首页,所关注的用户图片流
        '''
        def get(self):
            self.render('index.html')
    
    # 第二个页面
    class ExploreHandler(tornado.web.RequestHandler):
        '''
        发现或最近上传的图片页面
        '''
        def get(self):
            self.render('explore.html')
    
    # 第三个页面
    class PostHandler(tornado.web.RequestHandler):
        '''
        单个图片详情页面
        '''
        def get(self, post_id):
            #   用正则匹配到的 post _id 传到模板里
            self.render('post_2.html', post_id=post_id)
    
    
    # 重写 Application
    class Application(tornado.web.Application):
        def __init__(self):
            handlers = [
                (r'/', indexHandler),
                (r'/explore', ExploreHandler),
                # 正则匹配用户输入,0-9 的任意数字,一个或多个
                (r'/post/(?P<post_id>[0-9]+)', PostHandler),
            ]
            # 配置
            settings = dict(
                debug = True,
                template_path = 'templates',            # 模板文件
            )
            super().__init__(handlers, **settings)
    
    
    application = Application()
    
    
    if __name__ == '__main__':
        tornado.options.parse_command_line()            # 处理端口
        application.listen(options.port)
        print(options.port)
        tornado.ioloop.IOLoop.current().start()
    

      

  • 相关阅读:
    oc-25-id类型,
    oc-25-id类型
    [转贴]systemd 编写服务管理脚本
    [转贴]infoQ VSTS被拆成5个部分,以Azure DevOps服务形式推出
    Oracle 数据库备份启用压缩以及remap
    Support for SSL/TLS protocols on Windows
    微软自己的官网介绍 SSL 参数相关
    .NET4.0 加密通讯协议下TLS 的兼容支持问题.
    使用Word 进行UTF8 以及字符串编码的转换操作
    计算机管理以及设备管理的快捷打开方式
  • 原文地址:https://www.cnblogs.com/gdwz922/p/10399154.html
Copyright © 2020-2023  润新知