自动化创建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 ...
随机推荐
- TCHART类型
private Steema.TeeChart.Styles.Pie pieSeries1; private Steema.TeeChart.Styles.Pie pieSeries2; privat ...
- javascript ----> Immediately-Invoked Function Expression (IIFE)(翻译)
http://benalman.com/news/2010/11/immediately-invoked-function-expression/ 如果你没有注意到,我对术语有一点点坚持. 所以,在听 ...
- BGP-6,解决IBGP的水平分割
- stark 组件 url 二级分发的实现
模拟 admin 组件url设计思路 项目urls 文件中: from django.contrib import admin from django.urls import path from st ...
- 小程序动态添加class及调接口传递多个参数
1.动态添加class <view class="step2 {{indication == 2 ?'on':''}}"> <view class='tc lef ...
- JavaScript 入门笔记
JavaScript 1.JS和DOM的关系 浏览器有渲染html代码的功能,把html源码在内存里形成一个DOM对象,就是文档对象 浏览器内部有一个JS的解释器/执行/引擎,如chrome用v8 ...
- 4.1.4 Nim
Problem description: 有n堆石子,每堆各有ai颗石子.A和B轮流从非空的石子堆中取走至少一颗石子.A先取,取光所有石子的一方获胜.当双方都采用最佳策略时,谁会获胜? 1<=n ...
- mac下 配置homebrew 和java home
1.terminal下输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...
- 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 ...
- 『Python』skimage图像处理_旋转图像
一段简短的实现图像旋转的代码,使用了skimage库,据说和PIL相比,skimage对numpy等科学计算库的支持更好,这里是为了完成师兄给的帮他修改程序的任务,如果以后有需求的话可能会对pytho ...