很抱歉这个问题很长,但我很困惑,不知道我到底需要什么。因此,请在发布任何内容之前通读整个问题,以便您获得更好的想法。
所以,我是一个工作学期的软件工程合作学生,我的老板希望我使用 Tornado 开发一个 Web 应用程序。我在高中时做过一些 html 和 css,但这真的不符合我的要求。
Tornado 几乎没有任何关于如何开始的教程。当然,有一个 hello world 示例,但随后他们抛出了一些聊天应用程序,在我的情况下,它也可以用二进制编写。
我知道如何使用 tornado 来呈现页面并将数据作为参数发送。然后我可以使用这些数据在网页本身内执行一些逻辑(即数据库请求、循环......)我现在知道足够的 Javascript 来调用函数来编写文本或发出警报。
现在问题出现在我想转到另一个 html 页面的地方。当然,我可以使用 Javascript 或 html 访问外部站点(即 Google),但如果我尝试访问同一目录中的相关文档,我只会得到 404。我的主管希望我使用 POST 和GET 请求调用我的 Tornado 服务器 RequestHandler(所以我可以再次调用 render),但我只是不知道如何发出/接收该请求。
最后,有三个主要问题:
- 要正确使用 Tornado,我应该知道哪些其他语言?
- 我知道 html、xslt、css、一些 JS、SQL、json
- 我不想成为网络大师;我只想要基础知识
- 如何在我的龙卷风处理程序上发出 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'
编辑:我现在对 RequestHandlers 有了更多了解,但我不知道正确的做法是什么。我有这个 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())