简单介绍Python的Django框架的dj-scaffold项目

作者:goldensun 时间:2021-11-01 07:18:05 

由于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
0
投稿

猜你喜欢

  • SQL Server 中死锁产生的原因及解决办法

    2008-11-25 11:50:00
  • 《写给大家看的设计书》阅读笔记之对比原则

    2009-07-15 10:14:00
  • html元素input使用方法

    2007-12-06 13:02:00
  • python 实现手机自动拨打电话的方法(通话压力测试)

    2021-03-19 08:10:34
  • MySQL 视图,第1349号错误

    2008-05-18 13:04:00
  • Python使用Flask Migrate模块迁移数据库

    2023-08-10 09:17:30
  • Python简单进程锁代码实例

    2022-06-23 00:45:22
  • PHPMyadmin2.10中文显示为乱码的解决办法

    2007-08-22 08:18:00
  • pytorch 两个GPU同时训练的解决方案

    2023-07-04 11:03:55
  • Python入门教程(十九)python的函数详解

    2023-08-20 06:45:38
  • SQL事务用法begin tran,commit tran和rollback tran的用法

    2012-01-05 18:58:51
  • Dreamweaver滑动菜单的制作[图]

    2007-11-08 12:43:00
  • python 使用 requests 模块发送http请求 的方法

    2021-06-02 17:29:19
  • DropDownList绑定选择数据报错提示异常解决方案

    2023-07-18 04:36:13
  • NCCL深度学习Bootstrap网络连接建立源码解析

    2022-02-25 22:28:10
  • python中的插值 scipy-interp的实现代码

    2022-02-23 02:50:09
  • 分面搜索(Faceted Search)

    2009-07-31 12:44:00
  • Asp 单页查询数据库

    2010-05-11 20:11:00
  • PyQt QListWidget修改列表项item的行高方法

    2022-02-08 08:33:35
  • 浏览器中的内存泄露(续)解决方案

    2008-05-03 17:14:00
  • asp之家 网络编程 m.aspxhome.com