• 技术文章 >Python框架 >Django

    浅析Django的dj-scaffold项目

    PythonPython2019-06-21 09:31:01原创2568
    由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑。为此有一个开源项目dj-scaffold(django的脚手架)。这个项目用于自动生成一个标注化的django项目和app。现在简单了解下这个项目的架构、使用。

    项目地址:https://github.com/vicalloy/dj-scaffold

    安装

    已经发布到了pypi,所以你可以用pip或easy_install 来进行安装。

    pip install dj-scaffold 
    easy_install dj-scaffold

    使用

    dj-scaffold主要提供了两个命令,dj-scaffold.py和lbstartapp。

    dj-scaffold.py

    该脚本用于取代django的startproject命令。使用方式如下:

    dj-scaffold.py projectname

    在该命令执行后,将创建项目projectname。在项目的scripts目录中提供了脚本create_env.py和env.rc。

    create_env.py 执行该脚本将自动初始化python虚拟环境。新生成的python虚拟环境在env目录。

    env.rc 该脚本用户启动python虚拟环境(source env.rc)。该脚本同时为python manage.py设置了快捷方式$mg。你可以在任何目录调用$mg来执行django命令。比如你用$mg runserver来启动测试服务器。

    项目对应的目录结构如下:

    注:文件太多,去掉了部分不重要的文件

    dj-scaffold.py projectname


    |+docs/  #用于存放项目的相关文档
    |+env/   #python虚拟环境,由脚本自动生成
    |~requirements/   #第三方依赖包的存放位置
    | `-requirements.pip  #pip的依赖说明文件
    |~scripts/  #系统相关的脚本
    | |-create_env.py  #创建python虚拟环境(env目录)
    | `-env.rc  #进入python虚拟环境。同时提供python manger.py的快捷方式$mg。可在任意目录使用$mg。
    |~sites/  #Django的项目文件。在settings文件中增加了部分默认配置。如数据库默认使用sqlite,设置项目的模板以及静态文件目录。
    | |+media/  #项目静态文件(用户上传)
    | |+static/  #项目静态文件(css、js等)
    | `+templates/  #项目模板
    |+tools/  #一些项目依赖的第三方工具包。如python虚拟环境初始化脚本等。
    `~wsgi/  #项目部署用的wsgi文件
     `-dj_scaffold.wsgi

    lbstartapp

    lbstartapp作为django的扩展命令提供。将dj_scaffold加到INSTALLED_APPS后即可使用该命令。该命令将生成一个标准的app,相比django自带的startapp,lbstartapp将那些不太常用的app默认目录也都给生成了出来。对应目录结构如下:

    |+management/  #命令目录 
    |+static/  #静态文件目录 
    |+templates/  #模板目录 
    |+templatetags/  #tag目录 
    |-__init__.py 
    |-admin.py  #admin管理后台的models配置文件 
    |-forms.py 
    |-models.py 
    |-settings.py  #app自己的settings文件 
    |-tests.py 
    |-urls.py  #urls配置文件 
    `-views.py
    专题推荐:python
    上一篇:详解Django中的TEMPLATES设置 下一篇:Django中视图函数的参数传递实例

    相关文章推荐

    • Django中怎么对数据查询结果进行排序• 中间件在Django中怎么使用?• Django的认证框架有什么功能

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网