首页 > 其他分享 >Tornado Web框架学习(一)

Tornado Web框架学习(一)

时间:2024-07-06 16:58:23浏览次数:21  
标签:__ Web 框架 Tornado self db blog options define

tornado框架
1、单文件下对应用的配置
2、简单的get请求测试
3、错误重定向测试

import tornado
import asyncio

from os import path
from tornado.options import define,options

# define database and server config
# top level

define("port",default=8888,help="ServerPort",type=int)
# define("db_host", default="127.0.0.1", help="blog database host")
# define("db_port", default=5432, help="blog database port")
# define("db_database", default="blog", help="blog database name")
# define("db_user", default="blog", help="blog database user")
# define("db_password", default="blog", help="blog database password")

class Application(tornado.web.Application):
    def __init__(self,*db):
        # self.db = db
        handlers = [
            (r"/Home",HomeHandler),
            (r"/Get_param_test",GettestHandle),
            (r"/error_redirect_test",errorRedirectTest),
            
        ]
        settings = dict(
            blog_title="Tornado Blog",
            template_path=path.join(path.dirname(__file__), "templates"),
            static_path=path.join(path.dirname(__file__), "static"),
            ui_modules={"Entry": EntryModule},
            xsrf_cookies=True,
            # cookie_secret="__TODO:_GENERATE_YOUR_OWN_RANDOM_VALUE_HERE__",
            # login_url="/auth/login",
            debug=True,
        )
        super().__init__(handlers, **settings)

class EntryModule:
    pass

class noResultError(Exception):
    pass

class BaseHandler(tornado.web.RequestHandler):
    pass

class HomeHandler(BaseHandler):
    async def get(self):
        return self.write( f"this is Home Page")
    
class GettestHandle(BaseHandler):
    async def get(self):
        param = self.get_query_argument("param")
        return self.write(f"I get a param:{param}")

class errorRedirectTest(BaseHandler):
    async def get(self):
        try:
            raise noResultError("manual error")
        except noResultError:
            return self.redirect("/Home")
            

async def main():
    tornado.options.parse_command_line()

    # Create the global connection pool.
    # async with aiopg.create_pool(
    #     host=options.db_host,
    #     port=options.db_port,
    #     user=options.db_user,
    #     password=options.db_password,
    #     dbname=options.db_database,
    # ) as db:
    #     await maybe_create_tables(db)
    #     app = Application(db)
    #     app.listen(options.port)

    #     # In this demo the server will simply run until interrupted
    #     # with Ctrl-C, but if you want to shut down more gracefully,
    #     # call shutdown_event.set().
    #     shutdown_event = tornado.locks.Event()
    #     await shutdown_event.wait()
    app = Application()
    app.listen(options.port)
    shutdown_event = tornado.locks.Event()
    await shutdown_event.wait()


if __name__ == "__main__":
    asyncio.run(main())

标签:__,Web,框架,Tornado,self,db,blog,options,define
From: https://www.cnblogs.com/leo130-blogs/p/18287460

相关文章

  • JavaWeb开发基础7个Web术语解析
    7个Web术语Website:staticvsdynamicHTTPHTTPRequestsGETvsPOSTServletContainerServer:WebvsApplicationContentTypeWebsite:staticvsdynamic网站内容包括文本、图片、音频、视频,通过URL来访问。网站分为静态网站和动态网站。静态网站......
  • Nuxt框架中内置组件详解及使用指南(一)
    title:Nuxt框架中内置组件详解及使用指南(一)date:2024/7/6updated:2024/7/6author:cmdragonexcerpt:本文详细介绍了Nuxt框架中的两个内置组件和的使用方法与功能。确保包裹的内容仅在客户端渲染,适用于处理浏览器特定功能或异步数据加载。而是一个实验性组件,用于在SSR过......
  • 01 Web基础与HTTP协议
    1.1Web基础本章将介绍Web基础知识,包括域名的概念、DNS原理、静态网页和动态网页的相关知识。1.1.1.域名概述1.域名的概念ip地址不易记忆2.早期使用host文件解析域名主机名重复主机维护困难3.DNS分布式层次式4.域名空间结构根域顶级域组织域国家域二级域名FQDN......
  • SpringBoot引入WebSocket
    WebSocket是一种在客户端和服务器之间提供低延迟、全双工通信的网络协议。它允许双方在建立一次连接后,进行实时、持续的数据交换,无需像HTTP那样为每一个请求和响应建立新的连接。WebSocket的设计初衷是解决传统HTTP协议在实时通信方面的不足,比如实现实时聊天、游戏、股票报价等......
  • OpenELM:开启开放训练和推理框架的高效语言模型家族
    随着大模型模型规模的增长,这些强大工具的透明度、可复现性和对数据偏见的敏感性也引起了人们的关注。这些问题不仅关系到研究的开放性和公平性,也关系到模型输出的可信度和安全性。为了应对这些挑战,Apple的研究团队发布了名为OpenELM的新一代开放语言模型。OpenELM采用了层级缩......
  • appium自动化测试报错:Unable to launch com.facebook.WebDriverAgentRunner.maukkaki.
    嗨,我是兰若,今天在编写自动化测试用例的时候,appiuminspector报错:Unabletolaunchcom.facebook.WebDriverAgentRunner.maukkaki.xctrunner1、当时首先想到的就是检查WebDriverAgent的构建和安装是否正常,后来发现这块的安装是完全按照官方文档进行的,并且彼时我的手机上已经......
  • 一个基于Flask框架的Python Web应用程序
    dashboard.py主要实现了以下功能:1.用户注册与登录:提供了用户注册和登录的功能,用户的密码会被哈希处理后存储在users.json文件中。2.文件管理:实现了简单的文件管理功能,包括列出文件夹中的文件、上传文件和删除文件。只有管理员用户才能进行文件管理操作。3,路由定义:定义了......
  • 使用WebSocket和C语言实现一个简单的计算器
    在现代Web开发中,WebSocket已经成为实时通信的重要工具。本文将介绍如何使用WebSocket与C语言结合,实现一个简单的计算器应用。我们将通过Go语言作为中间层,调用C语言编写的计算函数,并通过WebSocket与前端进行交互。在使用本文章代码开发过程中遇到问题,可参考博主的另外两篇博客......
  • Webpack: 使用 SplitChunks提升应用性能
    概述Webpack默认会将尽可能多的模块代码打包在一起,优点是能减少最终页面的HTTP请求数,但缺点也很明显:页面初始代码包过大,影响首屏渲染性能;无法有效应用浏览器缓存,特别对于NPM包这类变动较少的代码,业务代码哪怕改了一行都会导致NPM包缓存失效。为此,Webpack提供了S......
  • 【0基础学爬虫】爬虫框架之 feapder 的使用
    前言大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫。学习爬虫的过程中,一般都会接触到一些框......