简单介绍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实现扫描端口示例
Mar 29 Python
在Python中处理时间之clock()方法的使用
May 22 Python
python追加元素到列表的方法
Jul 28 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
Python实现的异步代理爬虫及代理池
Mar 17 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
python模拟实现分发扑克牌
Apr 22 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 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
德劲1103二次变频版的打磨
2021/03/02 无线电
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Python接口开发实现步骤详解
2020/04/26 Python
高考考python编程是真的吗
2020/07/20 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
.net面试题
2016/09/17 面试题
小学开学寄语
2014/01/19 职场文书
梅花魂教学反思
2014/04/25 职场文书
师范生见习自我总结
2015/06/23 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers