tornado+bootstrap急速搭建你自己的网站

bootstrap既然是这么的流行又能省很多的事为什么不用他呢?再加上牛X的produced by FB的tornado简直如虎添翼了!

1. 安装配置

安装所需要的库等内容。这里没什么需要多讲的。tornado直接用easy_install或者pip。bootstrap直接下下来就OK了。当然还需要下载bootstrap依赖的jquery。依次下载安装就可以。

2. 目录结构

把bootstrap目录下得内容分别都放在static目录下得css、fonts和js中。jquery对应的js也放在static目录下得js目录中。

templates目录放置html文件,可以看到高亮出来的一个index.html文件。

3. tornado代码

import logging
import tornado.auth
import tornado.escape
import tornado.ioloop
import tornado.web
import os.path
import uuid

from tornado.concurrent import Future
from tornado import gen
from tornado.options import define, options, parse_command_line

define("port", default=8888, help="run on the given port", type=int)
define("debug", default=False, help="run in debug mode")

class BaseHandler(tornado.web.RequestHandler):
    def get_current_user(self):
        user_json = self.get_secure_cookie("chatdemo_user")
        if not user_json: return None
        return tornado.escape.json_decode(user_json)

class MainHandler(BaseHandler):
    @tornado.web.authenticated
    def get(self):
        self.render("index.html", messages=global_message_buffer.cache)

def main():
    parse_command_line()
    app = tornado.web.Application(
        [
            (r"/", MainHandler),
            ],
        cookie_secret="__TODO:_GENERATE_YOUR_OWN_RANDOM_VALUE_HERE__",
        template_path=os.path.join(os.path.dirname(__file__), "templates"),
        static_path=os.path.join(os.path.dirname(__file__), "static"),
        xsrf_cookies=True,
        debug=options.debug,
        )
    app.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()

define定义了站点的port。

class BaseHandler(tornado.web.RequestHandler)定义了一个基类,用于简单封装tornado的RequestHandler。以后的每个类都需要集成这个BaseHandler,比如后面的MainHandler。这样才能获得http请求。

最后在(r"/", MainHandler),绑定了请求的url和对应的handler。这时还不能运行,因为我们需要在MainHandler中解析模板html。

4. Html模板

这里的index.htm模板是直接从bootstrap上得例子中扒下来的。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link href="{{static_url("css/bootstrap.min.css")}}" rel="stylesheet">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
      <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Project name</a>
          </div>
          <div id="navbar" class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
              <li class="active"><a href="#">Home</a></li>
              <li><a href="#about">About</a></li>
              <li><a href="#contact">Contact</a></li>
            </ul>
          </div><!--/.nav-collapse -->
        </div>
      </nav>

      <div class="container">

        <div class="starter-template">
          <h1>Bootstrap starter template</h1>
          <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p>
        </div>

      </div><!-- /.container -->

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="{{static_url("js/jquery-1.11.2.min.js")}}"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="{{static_url("js/bootstrap.min.js")}}"></script>
  </body>
</html>

其中的css、js都放在我们上面的目录机构中的static目录下。所以在原来模板中的这些内容都需要做一些修改:<link href="{{static_url("css/bootstrap.min.css")}}" rel="stylesheet"><script src="{{static_url("js/jquery-1.11.2.min.js")}}"></script>还有<script src="{{static_url("js/bootstrap.min.js")}}"></script>。都通过了static_url这个内置方法实现了路径的跳转。

如果你不想这么设置路径也可以,但是这些css和js之类的还是需要放在static目录下。放在别的地方的话,可能是获取不到静态的内容。

这个时候运行代码你就会看到这个网页了。

好吧,这个时候似乎还是有些问题的。但是大体的结构就是这样了!

 

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!

时间: 2024-12-01 17:24:41

tornado+bootstrap急速搭建你自己的网站的相关文章

bootstrap环境搭建,请说明一下环境的搭建

问题描述 bootstrap环境搭建,请说明一下环境的搭建 <!doctype html> 无标题文档 <!复制的> 默认 切换下拉菜单 功能 另一个功能 其他 分离的链接 原始 data-toggle="dropdown"> 切换下拉菜单 功能 另一个功能 其他 分离的链接 <!复制结束> 代码如上,代码都是复制粘贴,bootstrap是最新版的,,,jQuery文件也是最新版的,复制的是案列代码,文件我都导入了,可是浏览器显示效果还是和案列

利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据列表_实用技巧

jQuery dataTables 插件是一个优秀的表格插件,是后台工程师的福音!它提供了针对数据表格的排序.浏览器分页.服务器分页.查询.格式化等功能.dataTables 官网也提供了大量的演示和详细的文档进行说明,为了方便使用,这里进行详细说明. 去官网:https://www.datatables.net/ 下载最新版本是v1.10.12. 在页面引入: <link rel="stylesheet" href="~/Content_Admin/css/boots

利用ASP.NET MVC和Bootstrap快速搭建个人博客之文章打赏功能(六)_实用技巧

看到新浪微博.百度百家等平台上都带有文章"打赏"功能,觉得很新鲜,于是也想在自己的博客中加入"打赏"功能. 当然,加入打赏功能并非是真的想要让别人打赏.因为只有那些真正能引起共鸣,发人深思,让人受益匪浅的文章才值得打赏,值得点赞. 而我的博客站仅仅是用作记录笔记,当做自己的知识库(如果能不经意间帮助别人那是再好不过了). 加入打赏功能纯粹是"觉得好玩",就是这么简单,Just have a fun!(博主喜欢折腾,看见一个酷炫的功能就想去实现它)

阿里云+wordpress搭建个人博客网站【小白专用的图文教程】

[正文]  在阿里云上搭建使用个人博客主要分为以下几个步骤: 1.购买阿里云ECS主机 2.购买域名 3.申请备案 4.环境配置 5.安装wordpress 6.域名解析 声明一下,本人对服务器端的知识不是很熟悉,但一心想做个自己的个人网站装一下哔,特此记录一下完整的配置过程,也算是给其他小白们的一剂福利吧.   开发环境: 物理机版本:Win 7 旗舰版(64位) xshell版本:Xshell 5 Build 0806 xftp版本:Xftp 5 Build 0780 wordpress版本

本机搭建tomcat服务器 架设网站 局域网内用户访问 页面动态加载的数据无法加载

问题描述 本机搭建tomcat服务器 架设网站 局域网内用户访问 页面动态加载的数据无法加载 本机搭建的tomcat服务器,数据库.局域网内用户访问系统页面,ajax动态加载数据无法显示.如图: [用户类型]是ajax动态加载的!本机页面正常,局域网内用户只有页面,没数据! 解决方案 你的代码呢?用chrome开发工具或者firebug看看报错了没有,ajax返回了什么内容. 解决方案二: 浏览器log中有没有错误,ajax打印下返回结果

教大家如何搭建自己的wap网站

WAP是一种向移动终端提供互联网内容和先进增值服务的全球统一的开放式协议标准, 是简化了的无线Internet 协议.WAP 将Internet和移动电话技术结合起来,使随时随地访问丰富的互联网络资源成为现实.WAP 服务是一种手机直接上网,通过手机WAP"浏览器"浏览wap 站点的服务,可享受新闻浏览.股票查询.邮件收发.在线游戏.聊天等多种应用服务.通过GPRS 网络接入WAP,可充分发挥接入时延短(2 秒接入)速率高.永远在线.切换方便等优点. WAP能支持HTHL和XML,但W

轻量应用服务器 常见应用安装与配置: 使用ECShop镜像搭建小型电商网站

使用ECShop镜像搭建小型电商网站 下面来介绍如何使用轻量应用服务器的ECShop镜像搭建一个小型电商网站. 1. 创建服务器 访问轻量应用服务器购买页面,选择ECShop镜像,并选择套餐.购买时长,确认订单支付并确认. 2. 查看应用信息 创建服务器成功后,点击服务器列表页的ECShop轻量应用服务器卡片 点击应用管理,应用详情 查看并记录预装好的ECShop的相关信息 复制其中的命令,鼠标右键-复制 打开右上角的远程连接功能 连接成功后,在打开的远程连接窗口中 粘贴 输入刚刚复制的命令并按

如何在搭建的asp.net网站中添加图片

问题描述 如何在搭建的asp.net网站中添加图片 在VS2013自动生成的asp.net网站模板中,如何插入图片? 解决方案 你确认你是开发者,而不是一个office操作员?如果你完全不懂html,我想wysiwyg的编辑器才是适合你的. 解决方案二: 不好意思,之前没接触过web,这两天刚申请了azure1元免费使用,好奇,想稍微了解下的.还望不吝赐教.html的基本语法我还是看过一点的.

中国首个为乡村教师搭建的公益类网站发布上线

国际在线消息(记者乔全兴):9月8日,中国首个为乡村教师搭建的公益类网站"乡村教师网"在北京发布上线,网站将通过其所承载的资讯平台.培训平台为846万乡村教师搭建起一个温馨的网上家园,为乡村教师提供全方位的服务和帮助. 中央电视台副总编辑李挺.光明日报副总编辑方正辉出席了"乡村教师网"发布上线仪式.作为中央电视台和光明日报社联合主办的"寻找最美乡村教师"大型公益活动的持续性.规模化的新媒体平台,"乡村教师网"在充分展示乡村教师