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

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

import os
os.system('pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com fabric')
os.system('pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com tornado')
from fabric.api import *
from fabric.colors import * def index_py_s():
content = """#coding:utf8
from app import app
if __name__ == "__main__":
app()
""" return content def server_py_s(port):
content = """#coding:utf8
import tornado.web
import tornado.ioloop
import tornado.options
import tornado.httpserver from tornado.options import options,define
from configs import configs
from urls import urls
define('port',default=%d,type=int) class CustomAppLication(tornado.web.Application):
def __init__(self,configs,urls):
settings = configs
handlers = urls
super(CustomApplication,self).__init__(handlers=handlers,**settings)
def create_app():
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(CustomApplicantion(configs,urls))
http_server.listen(options.port)
tornado.ioloop.IOLloop.instance().start()
app = create_app
""" % int(port)
return content
def urls_py_s():
content = """#coding:utf8
from home.views import IndexHandler as home_index urls = [
(r"/",home_index)]
"""
return content def configs_py_s():
import uuid
content = """#coding:utf8
import os
root = os.path.dirname(__file__)
configs = dict(
template_path = os.path.join(root,'templates'),
static_path = os.path.join(root,'static'),
debug = True,
xscrf_cookies = True,
cookie_secret = '%s'
)
"""%str(uuid.uuid4().hex) return content def views_py_s():
content = """#coding:utf8
import tornado.web class IndexHandler(tornado.web.RequetHandler):
def get(self):
self.render('index.html',title = 'hello world !')
"""
return content def index_html_s():
content = """
<h1>{{ title }}<h1>
"""
return content @task
def mk_web():
dir_name = prompt(green('please input project name:'))
local('mkdir %s' % dir_name)
with lcd(dir_name):
local('touch index.py')
local("echo '%s' >> index.py" % index_py_s())
local('mkdir app')
with lcd ('app'):
local('touch __init__.py')
port = prompt(cyan('please input project port:'))
local("echo '%s' >> __init__.py" % server_py_s(port))
local('touch urls.py')
local("echo '%s' >> urls.py" % urls_py_s())
local('touch configs.py')
local("echo '%s'>> configs.py" % configs_py_s())
local('mkdir home')
with lcd('home'):
local('touch __init__.py')
local('touch views.py')
local("echo '%s' >> views.py" % views_py_s())
local('mkdir templates')
with lcd('templates'):
local('touch index.html')
local("echo '%s' >> index.html" % index_html_s())
local('mkdir static') local('python3 index.py')
if __name__ == '__main__':
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. 图像识别 | AI在医学上的应用 | 深度学习 | 迁移学习

    参考:登上<Cell>封面的AI医疗影像诊断系统:机器之心专访UCSD张康教授 Identifying Medical Diagnoses and Treatable Diseases b ...

  2. RMQ 解决区间查询问题

    线段树写法不管,比较灵活.这里主要讨论DP实现. 其实单纯说RMQ解决的是区间最值查询是不准确的,只要满足一个区间的信息可以从它的覆盖区间获得(即[L,R]<=[L,r],[l,R] (l< ...

  3. Django 的 orm 查询

    一.模型关系表 1. 一对一 Author-AuthorDetail 关联字段可以在任意表下,但必须唯一约束.(unique约束) ad_id(unique约束) ad = models.oneToO ...

  4. Fiddler抓包—搞定接口测试

    ·包的定义   在包交换网络里,单个消息被划分为多个数据块,这些数据块称为包,它包含发送者和接受者的地址信息.这些包然后沿着不同的路径在一个或多个网络中传输,并且在目的地重新组合.   ·应用   简 ...

  5. Vue音乐项目笔记(五)

    1.搜索列表的点击删除.删除全部的交互事件 https://blog.csdn.net/weixin_40814356/article/details/80496097 seach组件中放search ...

  6. 深入解析 composer 的自动加载原理 (转)

    深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...

  7. 诡异的楼梯 HDU - 1180

    Hogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的,相反,他们每隔一分钟就变动一次方向. 比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向, ...

  8. python记录_day30 多进程

    1.什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 同一个程序执行两次,就会产生两个进程 ## 进程调度算 ...

  9. python记录_day12 生成器

    什么是生成器? 生成器的实质就是迭代器,我们能够从生成器中一个一的拿值 python中获取生成器的方式有三种: 1.通过生成器函数 2.通过生成器表达式 3.通过数据转换也可以获取生成器(某些对象执行 ...

  10. MongoDB存储

    mongo DB #定义数据库,文件为config.py mongo_url='loclhost'//数据库地址 mongo_DB='DB_name'//数据库名称 mongo_TABEL='tabe ...