Web applications 我正在用Tornado开始web开发。需要一些初学者帮助吗

Web applications 我正在用Tornado开始web开发。需要一些初学者帮助吗,web-applications,tornado,Web Applications,Tornado,很抱歉问了这么长的问题,但我很困惑,不知道我到底需要什么。所以,在发布任何内容之前,请通读整个问题,以便你能得到更好的想法 所以,我是一名软件工程合作专业的学生,在一个工作学期里,我的老板想让我用Tornado开发一个web应用程序。我在高中时做过一些html和css,但这真的超出了我的能力范围 Tornado几乎没有关于如何开始的教程。当然,有一个hello world的例子,但是他们抛出了一些聊天应用程序,在我的例子中,这些应用程序可能是用二进制编写的 我知道如何使用tornado渲染页面并

很抱歉问了这么长的问题,但我很困惑,不知道我到底需要什么。所以,在发布任何内容之前,请通读整个问题,以便你能得到更好的想法

所以,我是一名软件工程合作专业的学生,在一个工作学期里,我的老板想让我用Tornado开发一个web应用程序。我在高中时做过一些html和css,但这真的超出了我的能力范围

Tornado几乎没有关于如何开始的教程。当然,有一个hello world的例子,但是他们抛出了一些聊天应用程序,在我的例子中,这些应用程序可能是用二进制编写的

我知道如何使用tornado渲染页面并将数据作为参数发送。然后,我可以使用这些数据在网页本身中执行一些逻辑(即数据库请求、循环等),我现在知道足够多的Javascript调用函数来编写文本或发出警报

现在问题出现了,我想转到我的另一个html页面。当然,我可以使用Javascript或html访问外部站点(即Google),但如果我尝试访问同一目录中的相关文档,我只会得到404。我的主管希望我调查如何使用POST和GET请求来调用Tornado Server RequestHandler(这样我就可以再次调用render),但我就是不知道如何发出/接收该请求

最后,有三个主要问题:

  • 要正确使用Tornado,我还应该知道哪些其他语言?
    • 我知道html,xslt,css,一些JS,SQL,json
    • 我不想成为网络大师;我只想要基本的
  • 如何对我的tornado处理程序发出GET/POST请求
  • 如何重定向到相对的html页面
这是我正在使用的处理程序:

class MainHandler(RequestHandler):

    def get(self):
        print 'get...',
        self.render('test.html', data = Data())
        print 'done'


    def post(self):
        print 'post...',
        pass
        print 'done'
编辑: 现在,我对requesthandler有了更多的了解,但我不知道正确的方法是什么。我有一个RequestHandler处理两个页面的请求,但我希望能够为每个页面使用一个处理程序,我不知道我是否以最佳方式解释参数。我也不知道如何让参数指向*args参数

def get(self, *args, ** kwargs):
    print 'get:', args, kwargs, 'Handling:',

    if len(self.get_arguments('user')) > 0:
        print 'user'
        self.render('page2.html', user = self.get_arguments('user')[0])
    elif len(self.get_arguments('page')):
        print 'specific page:', self.get_argument('page')
        self.render(self.get_argument('page'), data = Data())
    else:
        print 'default'
        self.render('test.html', data = Data())

定义应用程序时,可以指定模板目录和静态文件目录:

导入设置
类应用程序(tornado.web.Application):
定义初始化(自):
处理程序=[
(r“/”,主处理器),
]
设置={
“模板路径”:Settings.template\u路径,
“静态路径”:Settings.static路径,
“调试”:Settings.debug
}
tornado.web.Application.\uuuuu init\uuuuuuu(self,handlers,**设置)
您可以定义Settings.py

导入操作系统
调试=真
DIRNAME=os.path.DIRNAME(_文件__)
STATIC\u PATH=os.PATH.join(DIRNAME,“STATIC”)
TEMPLATE\u PATH=os.PATH.join(DIRNAME,'TEMPLATE')

当您尝试访问龙卷风开始url时:

http://localhost:port/ 
Tornado在MainHandler中执行get方法。然后是Tornado render test.html页面。但您必须指定模板路径,以指示Tornado在何处可以获取此模板

class MainHandler(RequestHandler):
def get(自我):
打印“获取…”,
self.render('test.html',data=data())
打印“完成”
要在处理程序中的get或post方法中进行重定向,可以添加以下内容:

self.redirect(“/my\u new\u page.html”)

要正确使用Tornado,您可能会理解web应用程序的工作方式。客户机/服务器通信,了解HTML动词和更重要的尝试和尝试

啊,谢谢。这很有帮助。我现在也开始考虑如何拦截表单get请求。您知道我可以使用哪些资源来了解更多关于RequestHandler的信息吗?具体来说,我想学习如何为页面分配一个新的RequestHandler,以及构建get请求以请求新页面的最佳实践。再一次,我觉得我对使用Tornado应该有一定程度的了解,但我没有。我在问题的最后添加了另一部分。我给出了一个新的答案,希望它能帮助你