自动化创建tornado项目
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项目的更多相关文章
- Centos7部署tornado项目
今天帮一个学生解决tornado的部署问题,在此记录了这其中的过程,其中的tornado项目更换为demo示例. 开发环境: 本地开发环境:Win10 + Python3.5.4 + PyCharm ...
- Tornado项目简单创建
Tornado是使用Python编写的一个强大的.可扩展的Web服务器.它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中. tornado技术 ...
- Java接口自动化测试之Maven项目的创建(一)
这里使用Idea创建Maven项目, 过程非常简单, 装好JDK和Idea 1. 安装完后,打开Idea, 选择File→New→Project, 如图 2. 选择maven, 点击Next, 如图 ...
- tornado项目
tornado项目之基于领域驱动模型架构设计的京东用户管理后台 本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”. 一.预备知识: 1.接口: pytho ...
- 使用Kotlin创建Android项目
如果你已经使用过Android Studio和Gradle,那么这一章会比较简单.我不会给出很多细节和截图,因为用户界面和细节可能会一直变化. 我们的应用是由一个简单的天气app组成,正如所使用的Go ...
- maven命令行创建web项目报错:java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
早上一上班就想新建一个web项目玩玩,没想到一敲命令创建就失败了,真是出师不利.各种折腾无果,当然我也可以用eclipse直接创建的,就是不甘心被这破问题给耍了.刚刚才发现问题原因,这个结果我也是醉了 ...
- python+Django实现Nagios自动化添加监控项目
最近机房刚上了一批机器(有100台左右),需要使用Nagios对这一批机器进行监控.领导要求两天时间完成所有主机的监控.从原来的经验来看,两天时间肯定完成不了.那怎么办?按照之前的想法,肯定是在nag ...
- Python+Django+ansible playbook自动化运维项目实战☝☝☝
Python+Django+ansible playbook自动化运维项目实战☝☝☝ 一.入门引导 DevOPSDevOps(英文Development和Operations的组合)是一组过程.方法 ...
- 环境配置——tornado项目准备工作
新建tornado项目后,采用Pycharm作为开发工具,采用Xshell链接Ubuntu模拟服务端方便方便测试.项目编码前进行以下几个方面的配置. 1.Ubuntu配置 1.1安装ssh服务 sud ...
随机推荐
- SSD: ReLU6
1.在src\caffe\proto\caffe.proto中搜索message LayerParameter,在optional ReLUParameter relu_param = 123之后添加 ...
- Binary Gap(二进制空白)
中文标题[二进制空白] 英文描述 A binary gap within a positive integer N is any maximal sequence of consecutive zer ...
- Android实现选择题答题(包括单选、多选和答题卡)
在线答题demo,具体代码是一年多前完成的,比较简单,不再贴出,请参见Github. 主要功能: 单选:点击选项直接进入下一题.多选:选择多个选项,向右滑动进入下一题.答题卡:点击题号重新进入答题界面 ...
- NestedScrollView嵌套ListView时只显示一行的解决方法
在使用CoordinatorLayout和AppBarLayout实现嵌套滑动的时候,出现listview没有嵌套滑动: 如果要实现嵌套滑动,则需要添加NestedScrollView,但是结果发现l ...
- SQL SERVER 字符合并多行为一列
[字符合并多行为一列] 思路1:行转列,在与字符拼接(适用每组列数名相同) 思路2:转xml,去掉多余字符(适用所有) 假设兴趣表Hobbys Name Hobby 小张 打篮球 小张 踢足球 Nam ...
- sqlserver给指定用户授权访问指定表
一. 背景 外部公司的人授权访问我们公司的数据库,数据接口调用,要给他们建立查看指定的视图和授权的账号,因此要在数据库中,给指定用户授权访问指定表 二.sqlserver 脚本 ---创建视图CR ...
- 『MXNet』第七弹_多GPU并行程序设计
资料原文 一.概述思路 假设一台机器上有个GPU.给定需要训练的模型,每个GPU将分别独立维护一份完整的模型参数. 在模型训练的任意一次迭代中,给定一个小批量,我们将该批量中的样本划分成份并分给每个G ...
- Excel文件的读写
import xlsxwriter,xlrd import sys,os.path fname = 'zm6.xlsx' if not os.path.isfile(fname): print ('文 ...
- 第二阶段——个人工作总结DAY10
1.昨天做了什么:昨天其实什么也没实现. 2.今天打算做什么:今天就软件,等到审核过了,再看看软件最后后台是怎么实现的. 3.遇到的困难:后台自己都没有实现.
- input事件在ie9以下不兼容问题完美解决
上周四好不容易加了几天班把刚接手的一个pc页面做完,周五同事说要兼容ie7~ie9,结果在上面一跑,输入都没法输入. 我的需求是用6个span作为虚拟的密码输入框,实际上是用一个藏在页面里的input ...