tornado目录结构:

index.py             入口文件

app               app目录

  |___  __init__.py      初始化脚本

  |___  templates        模板目录

  |          |___ index.html  模板

  |___  static          静态目录

  |___  configs.py       配置文件

 |___  urls.py        路由规则

  |___  home        视图目录

  |     |___ __init__.py  初始化文件

  |___  view.py        视图脚本

  

引用视频教程:http://study.163.com/course/courseLearn.htm?courseId=1003852044#/learn/video?lessonId=1004567012&courseId=1003852044

如下代码还有部分问题未解决,会抓紧调试

  1. import os
  2. os.system('pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com fabric')
  3. os.system('pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com tornado')
  4. from fabric.api import *
  5. from fabric.colors import *
  6.  
  7. def index_py_s():
  8. content = """#coding:utf8
  9. from app import app
  10. if __name__ == "__main__":
  11. app()
  12. """
  13.  
  14. return content
  15.  
  16. def server_py_s(port):
  17. content = """#coding:utf8
  18. import tornado.web
  19. import tornado.ioloop
  20. import tornado.options
  21. import tornado.httpserver
  22.  
  23. from tornado.options import options,define
  24. from configs import configs
  25. from urls import urls
  26. define('port',default=%d,type=int)
  27.  
  28. class CustomAppLication(tornado.web.Application):
  29. def __init__(self,configs,urls):
  30. settings = configs
  31. handlers = urls
  32. super(CustomApplication,self).__init__(handlers=handlers,**settings)
  33. def create_app():
  34. tornado.options.parse_command_line()
  35. http_server = tornado.httpserver.HTTPServer(CustomApplicantion(configs,urls))
  36. http_server.listen(options.port)
  37. tornado.ioloop.IOLloop.instance().start()
  38. app = create_app
  39. """ % int(port)
  40. return content
  41. def urls_py_s():
  42. content = """#coding:utf8
  43. from home.views import IndexHandler as home_index
  44.  
  45. urls = [
  46. (r"/",home_index)]
  47. """
  48. return content
  49.  
  50. def configs_py_s():
  51. import uuid
  52. content = """#coding:utf8
  53. import os
  54. root = os.path.dirname(__file__)
  55. configs = dict(
  56. template_path = os.path.join(root,'templates'),
  57. static_path = os.path.join(root,'static'),
  58. debug = True,
  59. xscrf_cookies = True,
  60. cookie_secret = '%s'
  61. )
  62. """%str(uuid.uuid4().hex)
  63.  
  64. return content
  65.  
  66. def views_py_s():
  67. content = """#coding:utf8
  68. import tornado.web
  69.  
  70. class IndexHandler(tornado.web.RequetHandler):
  71. def get(self):
  72. self.render('index.html',title = 'hello world !')
  73. """
  74. return content
  75.  
  76. def index_html_s():
  77. content = """
  78. <h1>{{ title }}<h1>
  79. """
  80. return content
  81.  
  82. @task
  83. def mk_web():
  84. dir_name = prompt(green('please input project name:'))
  85. local('mkdir %s' % dir_name)
  86. with lcd(dir_name):
  87. local('touch index.py')
  88. local("echo '%s' >> index.py" % index_py_s())
  89. local('mkdir app')
  90. with lcd ('app'):
  91. local('touch __init__.py')
  92. port = prompt(cyan('please input project port:'))
  93. local("echo '%s' >> __init__.py" % server_py_s(port))
  94. local('touch urls.py')
  95. local("echo '%s' >> urls.py" % urls_py_s())
  96. local('touch configs.py')
  97. local("echo '%s'>> configs.py" % configs_py_s())
  98. local('mkdir home')
  99. with lcd('home'):
  100. local('touch __init__.py')
  101. local('touch views.py')
  102. local("echo '%s' >> views.py" % views_py_s())
  103. local('mkdir templates')
  104. with lcd('templates'):
  105. local('touch index.html')
  106. local("echo '%s' >> index.html" % index_html_s())
  107. local('mkdir static')
  108.  
  109. local('python3 index.py')
  110. if __name__ == '__main__':
  111. execute(mk_web)

自动化创建tornado项目的更多相关文章

  1. Centos7部署tornado项目

    今天帮一个学生解决tornado的部署问题,在此记录了这其中的过程,其中的tornado项目更换为demo示例. 开发环境: 本地开发环境:Win10 + Python3.5.4 + PyCharm ...

  2. Tornado项目简单创建

    Tornado是使用Python编写的一个强大的.可扩展的Web服务器.它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中. tornado技术 ...

  3. Java接口自动化测试之Maven项目的创建(一)

    这里使用Idea创建Maven项目, 过程非常简单, 装好JDK和Idea 1. 安装完后,打开Idea, 选择File→New→Project, 如图 2. 选择maven, 点击Next, 如图 ...

  4. tornado项目

    tornado项目之基于领域驱动模型架构设计的京东用户管理后台 本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”. 一.预备知识: 1.接口: pytho ...

  5. 使用Kotlin创建Android项目

    如果你已经使用过Android Studio和Gradle,那么这一章会比较简单.我不会给出很多细节和截图,因为用户界面和细节可能会一直变化. 我们的应用是由一个简单的天气app组成,正如所使用的Go ...

  6. maven命令行创建web项目报错:java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

    早上一上班就想新建一个web项目玩玩,没想到一敲命令创建就失败了,真是出师不利.各种折腾无果,当然我也可以用eclipse直接创建的,就是不甘心被这破问题给耍了.刚刚才发现问题原因,这个结果我也是醉了 ...

  7. python+Django实现Nagios自动化添加监控项目

    最近机房刚上了一批机器(有100台左右),需要使用Nagios对这一批机器进行监控.领导要求两天时间完成所有主机的监控.从原来的经验来看,两天时间肯定完成不了.那怎么办?按照之前的想法,肯定是在nag ...

  8. Python+Django+ansible playbook自动化运维项目实战☝☝☝

    Python+Django+ansible playbook自动化运维项目实战☝☝☝  一.入门引导 DevOPSDevOps(英文Development和Operations的组合)是一组过程.方法 ...

  9. 环境配置——tornado项目准备工作

    新建tornado项目后,采用Pycharm作为开发工具,采用Xshell链接Ubuntu模拟服务端方便方便测试.项目编码前进行以下几个方面的配置. 1.Ubuntu配置 1.1安装ssh服务 sud ...

随机推荐

  1. TCHART类型

    private Steema.TeeChart.Styles.Pie pieSeries1; private Steema.TeeChart.Styles.Pie pieSeries2; privat ...

  2. javascript ----> Immediately-Invoked Function Expression (IIFE)(翻译)

    http://benalman.com/news/2010/11/immediately-invoked-function-expression/ 如果你没有注意到,我对术语有一点点坚持. 所以,在听 ...

  3. BGP-6,解决IBGP的水平分割

  4. stark 组件 url 二级分发的实现

    模拟 admin 组件url设计思路 项目urls 文件中: from django.contrib import admin from django.urls import path from st ...

  5. 小程序动态添加class及调接口传递多个参数

    1.动态添加class <view class="step2 {{indication == 2 ?'on':''}}"> <view class='tc lef ...

  6. JavaScript 入门笔记

    JavaScript   1.JS和DOM的关系 浏览器有渲染html代码的功能,把html源码在内存里形成一个DOM对象,就是文档对象 浏览器内部有一个JS的解释器/执行/引擎,如chrome用v8 ...

  7. 4.1.4 Nim

    Problem description: 有n堆石子,每堆各有ai颗石子.A和B轮流从非空的石子堆中取走至少一颗石子.A先取,取光所有石子的一方获胜.当双方都采用最佳策略时,谁会获胜? 1<=n ...

  8. mac下 配置homebrew 和java home

    1.terminal下输入   /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...

  9. 160. Intersection of Two Linked Lists(剑指Offer-两个链表的第一个公共结点)

    题目: Write a program to find the node at which the intersection of two singly linked lists begins. Fo ...

  10. 『Python』skimage图像处理_旋转图像

    一段简短的实现图像旋转的代码,使用了skimage库,据说和PIL相比,skimage对numpy等科学计算库的支持更好,这里是为了完成师兄给的帮他修改程序的任务,如果以后有需求的话可能会对pytho ...