Skip to content

Instantly share code, notes, and snippets.

@swpu-lee
Last active December 20, 2015 15:29
Show Gist options
  • Save swpu-lee/6154160 to your computer and use it in GitHub Desktop.
Save swpu-lee/6154160 to your computer and use it in GitHub Desktop.
我对项目目录结构的理解:
1、必须不交叉依赖,而应该是树状依赖
2、拥有较好的可读性和可管理性。
3、在可能的前提下,提高部分模块的可移植性
4、尽量简单,不搞层级太深,减少目录数量
基于flask建议的结构,结合实际工作中遇到的问题,总结了如下结构。
HelloApp/
__init__.py
build.sh # 构建项目依赖环境的脚本,这里我用到了virtualenv
requirement.txt # 使用pip去安装的文件。
env/ #用virtualenv构建的虚拟环境,跑项目就是使用这里的python,如:env/bin/python applications/hello_app.py
...
applications/
__init__.py
hello_app.py
configs/
__init__.py
settings.py # from site_settings.py import *
site_settings.py # 用于配置ip、端口等信息
promise.py # 常量约定,可以和配置一样写。(我把一个大神的Const改了一下,把所有的配置全改成类+类属性了,好看一点)
errors.py # 错误码定义
utils/ # 毫无依赖的工具包,可以随意移植到任意项目
__init__.py
paginatior.py
converter.py
objects.py
rest.py
site_utils/ # 依赖于configs的工具包,可能还会依赖于utils
__init__.py
error.py
view_base.py
decorators.py #会在这里面写一些装饰器,比如check_user_login之类的
captcha.py # 这里captcha因为要用到cache,所以必须依赖configs配置,cache地址啥的信息在配置里
views/
__init__.py
user.py
test/
__init__.py
static/ # 静态文件存放文件夹。如果项目没有静态文件,就不需要了
templates/ # 模板存放文件夹。如果项目没有模板,就不需要了
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment