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


Posted in Python onMay 30, 2015

由于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 相关文章推荐
python数据结构树和二叉树简介
Apr 29 Python
详解Python Socket网络编程
Jan 05 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
pandas中read_csv的缺失值处理方式
Dec 19 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 Python
pytorch 多分类问题,计算百分比操作
Jul 09 Python
如何基于Python实现word文档重新排版
Sep 29 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 Python
python中os.path.join()函数实例用法
May 26 Python
Python的Django框架中settings文件的部署建议
May 30 #Python
Python的Django中django-userena组件的简单使用教程
May 30 #Python
在SAE上部署Python的Django框架的一些问题汇总
May 30 #Python
python实现比较两段文本不同之处的方法
May 30 #Python
python统计文本文件内单词数量的方法
May 30 #Python
python使用win32com库播放mp3文件的方法
May 30 #Python
基于wxpython开发的简单gui计算器实例
May 30 #Python
You might like
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
迎八一活动主题
2014/01/31 职场文书
中专自我鉴定
2014/02/05 职场文书
诉讼授权委托书
2014/10/15 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
Golang日志包的使用
2022/04/20 Golang