tornado开发-快速搭建tornado项目

由于tornado项目没有固定的结构,每个同学也可能有自己喜欢的项目结构。今天先分享一个快速搭建tornado项目的脚本,执行完此脚本后的tornado项目结构如下:
1)项目结构


├── App
│   ├── __init__.py
│   ├── Shop
│   │   ├── __init__.py
│   └── User
│       ├── __init__.py
├── application.py
├── Config
│   ├── config_base.py
│   ├── config_db.conf
│   ├── config_db_get.py
│   ├── config_engine.py
│   ├── __init__.py
├── Models
│   ├── __init__.py
│   ├── Shop
│   │   └── __init__.py
│   └── User
│       ├── __init__.py
├── server.py
├── static
├── templates
└── Urls
    ├── __init__.py
    ├── Shop.py
    └── User.py

2)脚本
脚本如下:


project.py:
# coding=utf-8


import os
import sys


def make_project(name):
    """
    创建项目
    :param name:
    :return:
    """
    # 根目录
    os.mkdir(name)

    # 子目录
    current_path = os.getcwd() + "/" + name
    sub_dirs = ["App", "Config", "Models", "static", "templates", "Urls"]
    sub_files = ["server.py", "application.py"]
    full_sub_dirs = list()
    # 创建子目录
    for sub in sub_dirs:
        full = current_path + "/" + sub
        os.mkdir(full)
        if sub != "static" and sub != "templates":
            if sub == "Config":
                os.mknod(full + "/" + "__init__.py")
                os.mknod(full + "/" + "config_base.py")
                os.mknod(full + "/" + "config_db.conf")
                os.mknod(full + "/" + "config_db_get.py")
                os.mknod(full + "/" + "config_engine.py")
            else:
                full_sub_dirs.append(full)
    # 创建文件
    for sub in sub_files:
        full = current_path + "/" + sub
        os.mknod(full)
    for full in full_sub_dirs:
        os.mknod(full + "/" + "__init__.py")


def make_app(names):
    """
    创建app
    :param names:
    :return:
    """
    sub_dirs = ["App", "Models", "Urls"]
    project_name = names[0]
    current_path = os.getcwd() + "/" + project_name
    for sub in sub_dirs:
        for name in names[1:]:
            if sub == "App":
                os.mkdir(current_path + "/" + sub + "/" + name)
                os.mknod(current_path + "/" + sub + "/" + name + "/__init__.py")
            else:
                os.mknod(current_path + "/" + sub + "/" + name + ".py")


if __name__ == '__main__':
    params = sys.argv
    if len(params) > 1:
        flag = params[1]
        if flag == '0':
            # 创建项目
            try:
                project_name = params[2]
                make_project(project_name)
            except IndexError:
                raise RuntimeError("请输入项目名称")
        elif flag == '1':
            # 创建app
            try:
                app_names = params[2:]
                make_app(app_names)
            except:
                raise RuntimeError("创建app错误")

3)使用上面的脚本


# 创建项目 0表示创建项目 test是项目名称
python project.py 0 test
# 创建app 1表示创建app test是上面已创建的形目名称 User、Shop等是app名
python project.py 1 test User Shop