zoukankan      html  css  js  c++  java
  • 自动化创建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)
  • 相关阅读:
    JQuery操作Javascript对象和数组的工具函数总览
    .document.execCommand("BackgroundImageCache",false,true)解决ie6下的背景图片缓存问题
    jQuery boxy弹出层对话框插件中文演示及讲解
    纯客户端页面关键字搜索高亮jQuery插件
    Android游戏开发中地图图层开发
    第一次开通博客
    C#下的Config类, 支持Get, Set, GetList
    输出N以内素数的方法
    使用 googleperftools 剖析程序性能瓶颈
    在网页设计中寻找热情
  • 原文地址:https://www.cnblogs.com/jackyzm/p/9120201.html
Copyright © 2011-2022 走看看